Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 23:23 21 Nov 2025 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: 1057
Posted: 02:09am 09 Feb 2023
Copy link to clipboard 
Print this post

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

V6.00.00b6

CMM2 V6.00.00 Beta6 Update
AUTOSAVE N filename  for fast loading with no echo.
TURTLE command updated to Peters new enhanced version
SORT command has an addition option.



CMM2 V6.00.00 Beta5 Update

CMM2V6.00.00.bin.zip


TODO/CHECK
----------
Update Parsing of array parameters.
  LongString
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()
COM1 was setting COM10 flag in lieu of COM1
Fixes bug in day$(now) function
ADC OPEN command updated so that if invalid pins are supplied will not leave ADC partially configured.
Fix for ERASE var not recovering memory for array and string variables. (as per picomite)

LONGSTRING TRIM command now allows TRIM to remove the whole buffer. Previously would not allow a value equal to the length of the buffer that would trim the whole buffer.0 also allowed which does not change the string.

SETPIN pinno,CIN [,option]      -Added as per PicoMite
SETTICK PAUSE, myint [,tickno]  -Added
SETTICK RESUME, myint [,tickno] -Added



BITBANG WS2812 W, pin, nbr, value%[()] now supports SK6812 RGBW Leds
Update LCD to BITBANG LCD as per F4 and accept LCD,WS2812,BITSTREAM,HUMID
PAGE now GUI PAGE but still accepts PAGE
MM.INFO(DIR EXISTS dir) added
MM.INFO(FILE EXISTS file) added
OPTION ANGLE added

Enhanced READ command -The command can now take arrays as a parameter.
Enhanced RESTORE command -The command can now take a variable as a parameter.
READ SAVE and READ RESTORE added as per PicoMite.
INTERRUPT [myint] -Added as per PicoMite
Added Interrupt ie CSubComplete to CFunctions
Allow  CFunction calls to CFunInt1-4 from COUNT1-4 pins



SYNC [period][,units] command added
MATH PID command and function added.
BYVAL and BYREF qualifiers added to SUB and FUNCTION definitions.
PWM will set output pin to OC(Open Collector/Drain) if frequency given as -ve number.
PWM fixed issue where a frequency change was not recorded, so returning to the original frequency did not result in an update.

MEMORY command Fixed issue where it erased saved variables.

Functions MM.HRES, MM.VRES, MM.VER, M.I2C, MM.FONTHEIGHT, MM.FONTWIDTH, MM.HPOS, MM.VPOS, MM.ONEWIRE, MM.Errno, MM.ErrMsg$, MM.WATCHDOG, MM.DEVICE$,MM.WIDTH,MM.HEIGHT
are now all implemented as written and none of them are converted to MM.INFO calls by the pre-processor

MM.CMDLINE$ is now a function and does not need to create a variable.


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.


MATH CROSSING() added
MATH SHIFT added  as per picomites
MATH WINDOW added as per picomites
MATH M_MULT Fix for not  giving correct results.
MATH M_MULT Improved as per Pico RC5
MATH M_PRINT Improved as per Pico RC5
MATH V_PRINT array() [,hex] 'outputs the contents in hex
MATH command accepts either C_MUL or C_MULT. (as per Picomite)
MATH(BASE64 ENCODE/DECODE added
MATH AES128 ENCRYPT/DECRYPT added

LONGSTRING AES128 ENCRYPT/DECRYPT added
LONGSTRING BASE64 ENCODE/DECODE added

MEMORY PACK/UNPACK added.
MEMORY PRINT/INPUT added




I2C READ allows >255 chars if INT or Float array used.(as per Picomite)

USBKeyBoard:
Fixed issue where USBKeyBoard did not connect reliably.
Console message now given when USB Keyboard is either Connected or Disconnected.
Added delay in USBKeyboard handling of CAPS/NUM/SCROLL Lock to improve operation of LEDs on some keyboards. see https://www.thebackshed.com/forum/ViewTopic.php?TID=17037
USBKeyboard mappings corrected so that SHIFT+(F1-F12) resolve to correct codes
i.e. 0xB1- 0xBC in lieu of 0xD1-0xDC. See Manual Appendix J

INSTR fixed when an expression is used as the index to an array as the first parameter (as per picomite RC9)

SORT command extra sort option
LINSTR Fixes bug in changing the regular expression if a variable.



ADC START now accepts additional parameters as per the Picomites that allow mapping of the the output data to a desired range.
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]


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

The allocation of the internal heap memory is enhanced so memory required to execute commands, SUBs and Functions is allocated from the bottom up and does not have to search past memory previously allocated to variables from top down. This can offer significant performance improvement when many variables are allocated.
See GRAINBENCH below.

BYVAL/BYREF updated to latest fix in Picomite.
getInt() accepts 64bit integers Fix

AUTOSAVE N filename$   supports autosave with noecho. Faster loading.
AUTOSAVE filename$     echo for each line.

LINE command enhanced. LW given as -LW will set LW in all directions
LINE AA command added as per picomites
LINE GRAPH command added as per picomites
LINE PLOT command added as per picomites
MATH C_ADD etc commands that act on cells added as per picomites.
MATH C_OR etc commands that act on cells added as per picomites.
MATH C_XOR etc commands that act on cells added as per picomites.
MATH C_AND etc commands that act on cells added as per picomites.

CAN [OPEN|CLOSE|START|STOP|FILTER|SEND|READ] commands added
MM.INFO$(ID)  Returns the unique hex 12 byte ID of the Armmite chip as a string.
MM.INFO(ID48) Returns a 48bit hash of the ID as an integer. Not guaranteed unique world wide but most likely unique for a hobbyist. Suitable as a serial no. for the device and at 6 bytes fits inside a CAN message.

SHIFT F3-F8 Added for VT100 terminal as per picomite 6.00.02B0
//NB: SHIFT F1, F2, F9, F10, F11, and F12 don't appear to generate anything
USBKeyboard mappings corrected so that SHIFT+(F1-F12) resolve to correct codes
i.e. 0xB1- 0xBC in lieu of 0xD1-0xDC. See Manual Appendix J

* shortcut for RUN can now call the current program without including the filename.
commandline parameters can also be passed without using filename.
e.g
*
* --base0

LONGSTRING PRINT allows ; to suppress CRLF

MID$ command now allows replacement of different length string
INSTR function now optionally allows Regex expression as search string
LINSTR function now optionally allows Regex expression as search string
REGEX uses different library. GPL licence incompatible with STM licence.
Edited 2025-11-18 11:07 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 2025