|
Forum Index : Microcontroller and PC projects : MM+ Fast Loading of RLE Images from Flash to SSD1963
| Author | Message | ||||
| disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 1045 |
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░ WORK IN PROGRESS F4 Update ░░ Please don't reply to thread ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ TODO ----- --- Changes from Picomite 6.00.02RC5 --- https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=17777#235710 Functions MM.HRES, MM.VRES, MM.VER, M.I2C, MM.FONTHEIGHT, MM.FONTWIDTH, MM.PS2, MM.HPOS, MM.VPOS, MM.ONEWIRE, MM.Errno, MM.ErrMsg$, MM.WATCHDOG, MM.DEVICE$ are now all implemented as written and none of them are converted to MM.INFO calls by the pre-processor function TEMPR(Pinno [,timeout]) 'new optional parameter timeout to override the default (200mSec) to allow for slow devices command TEMPR START GPno [,resolution(0-3)] [,timeout] 'new optional parameter timeout to override the default (100, 200, 400, or 800mSec) to allow for slow devices Have a look on github at fun_tilde in functions.c, llist in commands.c, changes to str_replace (fixes a bug where replacements could happen incorrectly) and tokenise in MMBasic.c. I'm going to add MM.CMDLINE$ and the MQTT MM.s as well in the next RC which will get rid of the various background variable creation code that current supports them. 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. Added @( function. i.e. PRINT @(x,y) when outputting to the console. OPTION CHARS will enable x,y to be entered as row,column in lieu of pixels. OPTION CHARS OFF will return to pixels. Fix MATH V_PRINT GetSystemMemory performance stuff -------------------------------------------------------------------------------- ARMmiteF407xGT 5.07.02 -for STM32F407VGT6,STM32F407ZGT6,STM32F405RGT6 In Progress Armmite F407xGT6 5.07.02 Beta 1 BYVAL and BYREF qualifiers added to SUB definition. 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. LIBRARY SAVE future proofed for 0xFF token 16bit tokens. OPTION LCDPANEL accepts [,INVERT] to invert colours on ILI9341 and ILI9488 Support for LCD Display ST7796S 480*320 SPI Fixed issue where MEMORY command erased saved variables. LINE command enhanced. LW given as -LW will set LW in all directions -------------------------------------------------------------------------------- ARMmiteF407 5.07.02 -for STM32F407VET6 - Inprogress Armmite F407 5.07.02 Beta 5 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. LIBRARY SAVE future proofed for 0xFF token 16bit tokens. OPTION LCDPANEL accepts [,INVERT] to invert colours on ILI9341 and ILI9488 BEZIER drawing command removed. Support for LCD Display ST7796S 480*320 SPI LINE command enhanced. LW given as -LW will set LW in all directions ON ERROR RESTART implemented A hardware error will now cause a restart. MM.INFO(BOOT) shows reason for last restart. AUTOSAVE N implemented for fast loading CONST strings < 10 chars now don't use HEAP. Stored in VARTBL MM.INFO(HEAP) added. -------------------------------------------------------------------------------- Armmite F407xGT6 5.07.02 Beta Releases This firmware supports STM32F407xGT6 chips with 1 Meg Flash.i.e STM32F407VGT6 100 pin, STM32F407ZGT6 144 pin, WeAct STM32F405RGT 64 pin and Adafruit Feather STM32F405RGT 64 pin . The links below point to the latest Manual, Firmware, Source and a FotS page dedicated to the ARMmiteF407xGT version. See the FotS page for details on the boards that have been tried/tested. Latest Manual Armmite F407xGT6 User Manual Latest Firmware There are three versions of the firmware: The default version uses the default PE3 and PE4 pins for MMBasic Reset and Switch to Serial Console on the 100 and 144 pin boards. The PC13Reset versions uses PC13 to test for MMBasic Reset and Switch to Serial Console. The Adafruit version is for the 64 pin Adafruit version with a 12MHz clock. Armmite F407VGT6 Firmware (default) on GitHub Armmite F407VGT6 Firmware (PC13Reset) on GitHub Armmite F407VGT6 Firmware (AdaFruit Feather) on GitHub CFunctions Header File CFunctions Header File (ARMF4CFunctions.h) Source Code Source Code on GitHub Fruit of the Shed FotS Armmite F407xGT6 Footnotes in this first post will be used to reference further updates as required. Armmite F407xGT6 5.07.02 Beta 0 This first Beta includes all enhancements/fixes as per Armmite F407 5.07.02 Beta 3/4. see here These include: CAN [OPEN|CLOSE|START|STOP|FILTER|SEND|READ] commands added FSMC pins now available for MMBasic use if no parallel display configured. These additions/differences apply to the F407xGT6 5.07.02 The additional flash allows increased size for the firmware.The firmware is now optimised for speed rather than size. No LCD Panel is configured by default. The LIBRARY is now an additional 128K flash section separate to program memory and does not rely on the SPI Windbond flash chip. OPTIONS are moved back into flash so not dependent on RTC battery. SAVED VARS are moved back into flash so not dependent on RTC battery. Both are reset to default when new firmware is loaded. The Command Line Buffer is moved to RTC Ram (first 1K) OPTION RESET will clear the options and also the Command Line Buffer. RTC Ram is also cleared with an MMBasic RESET. LIBRARY RESTORE will restore any existing library after OPTION RESET. MM.INFO(DEVICETYPE) added. Returns "Feather" for Adfruit feather else "" I2C SLAVE mode added. OPTION Fn5-9 added. LINE AA command added LINE GRAPH command added LINE PLOT command added MATH CROSSING() added MATH CRC12 added MATH POWER added MATH SHIFT added MATH(CHI ..) function added MEMORY PACK/UNPACK added MEMORY INPUT/PRINT added SORT command enhanced as per Picomites. --------------------------------------------------------------------- Hi Peter, I have a question about MATH(CHI a()). In this code DIM a(1,1) PRINT MATH(CHI a()) I get "INF" as answer. "Probably" because all elements in a() are zero. DIM a(1,1)=(1,1,1,1) PRINT MATH(CHI a()) I get 0, which is correct. But now the situation gets strange. Lets set OPTION BASE 1 OPTION BASE 1 DIM a(2,2)=(1,1,1,1) PRINT MATH(CHI a()) The result is "INF". It feels like OPTION BASE 1 does not work with the CHI function. I hope I am not confused.... I have tested against this option base 1 dim a(2,5)=(17,5,25,21,39,34,42,49,32,25) ? math(chi a()) and this option base 1 dim a(4,3)=(90,60,104,95,30,50,51,20,30,40,45,35) ? math(chi a()) Armmite F407 5.07.02 Beta 4 The manual and binary linked below are on GitHub. These point to the latest versions. A copy will be place on TBS when any minor errors are identified so there is a permanent copy of beta4 on TBS. Armmite F4 manual -Latest Manual Currently 5.07.02 Beta 4 ArmmiteF407 binary Latest default binary Currently 5.07.02 Beta 4 ArmmiteF407PC13Reset binary Latest alternate binary Currently 5.07.02 Beta 4 The testing for an MMBasic Reset is now restricted to a Power Up Restart. This is an attempt to guard against a false triggering of an MMBasic Reset on a running (powered) system. See Armite F4 loosing program The alternate firmware ARMmiteF407PC13Reset.bin is provided to move the testing for an MMBasic Reset off PE3 (K1) and also the testing for Option Serial Console off PE4(K0). Pin PC13 is now used to trigger these events. This allows PE4 and PE3 to be used without risking an unintended MMBasic Reset or switch to Serial Console. 3.3V on PC13 will trigger an MMBasic Reset GND on PC13 will trigger a switch to the Serial Console. !!! MMBasic Reset !!! Now printed on console after an MMBasic Reset is forced. 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 to see the history of an unattended device. LCDPANEL ILI9341_I removed. OPTION LCDPANEL accepts [,INVERT] to invert colours on ILI9341 and ILI9488 In the commandline editor the automatic OVR mode on right arrow removed to lineup with the Picomites. Comments are no longer tokenised as per Picomites. MATH V_PRINT array() [,HEX] outputs the contents in hex LONGSTRING PRINT allows ; to suppress CRLF CAN OPEN syntax adjusted slightly Function INKEY$ changed so it automatically resolves Function and special keys as per picomites and CMM2. SHIFT F3-F8 Added as per picomite 6.00.02B0 //NB: SHIFT F1, F2, F9, F10, F11, and F12 don't appear to generate anything AUTOSAVE APPEND added. MEMORY PACK/UNPACK removed to recover flash. Armmite F407 5.07.02 Beta 3 This Beta implements the new routines for parsing command parameters as used in the Picomite code.(i.e.MATH,LONGSTRING,ADC, commands). This has resulted in the freeing up of significant Flash, allowing some commands previously omitted to save space to be now included.Various errors discovered in beta2 and others discovered as a result of Picomite testing are also corrected. The manual and binary linked below are on GitHub. These point to the latest versions. A copy will be place on TBS when any minor errors are identified so there is a permanent copy of beta3 on TBS. Armmite F4 manual -Latest Manual Currently 5.07.02 Beta 3 ArmmiteF407 binary Latest binary Currently 5.07.02 Beta 3 CAN [OPEN|CLOSE|START|STOP|FILTER|SEND|READ] commands added FSMC pins now available for MMBasic use if no parallel display configured. MATH C_ADD etc commands that act on cells added as per picomites. MATH SHIFT added as per picomites MATH WINDOW added as per picomites MATH WINDOW fixed when input and output matrix are not the same type MATH SD formula changed to Sample Standard Deviation as per Picomite LINE PLOT command added as per picomites LINE GRAPH command added as per picomites LINE command updated getargaddress() function from Picomite with fix for % in LINE Fix for MATH M_MULT not giving correct results. Improved MATH M_MULT as per Pico RC5 (Added but not yet tested) Improved MATH M_PRINT as per Pico RC5 (Added but not yet tested) MATH command accepts either C_MUL or C_MULT. (as per Picomite) Added MM.INFO(NBRPINS) returns 100 Added MM.INFO(OPTION VCC) returns current value for VCC Minor update to CommandLine Bufferdetails here BITBANG becomes DEVICE as per picomite latest release. i.e. i.e. DEVICE BITSTREAM DEVICE LCD DEVICE HUMID DEVICE WS2812 DEVICE BITSTREAM error in calculation fixed see this thread LIBRARY CHECK becomes LIBRARY RESTORE is more closely match its function Fix to allow no space after = in DIM i%=12345 as per picomite. Fix to command READ not finding DATA statement if token 255 is in use.(as per picomites) Fix for EXECUTE command in beta2 not having a timeout value. Print datetime$(epoch(now)) no longer gives error. Extend PEEK range to allow PEEK(VARADDR var) for non array integers and floats. MEMORY command shows variables again. MM.INFO(PINNO pin ) now returns correct value. OPTION ANGLE now defaults to RADIANS after CNTRL C or END command. COM4 TX and RX were partially reversed, A pullup on RX possibly not released when COM4 closed . Now resolved. 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] Fix for freeze at command prompt after CNTRL C, ERROR , WATCHDOG if DAC was running. Fix for incorrect frequency and pulse width generated on SERVO 3 command. Added ~ option to error() as per picomite and call it from getint() function to allow correct error message format. Improved scrolling for Editor and Console for non SSD1963 parallel displays: Editor rewrites in lieu of scrolling and OPTION LCDPANEL CONSOLE ,,,,,, NOSCROLL added for 16bit parallel non SSD displays to improve scrolling when used as a Console. IPS_4_16 now works as a CONSOLE - was giving out of memory error. REMOVED - OPTION LCDPANEL CONSOLE support on SPI LCD PANELS Manual Updates. See Change Log section in manual. PicoMite Fixes NOT included ---------------------------- TODO ----------------- NOT INCLUDED FOR NOW --------------------- I2C READ allows >255 chars if INT or Float array used.(as per Picomite) ==================================================================================== Armmite F4 5.07.02 Beta 2 multi line comments /* */ added as per picomites Using \\000 and \&00 (with OPTION ESCAPE) give error message to use CHR$(0) as per picomites SPIClose() added before AppendLibrary incase left open by flash write fail, which then gives misleading error. Fix for potential FILES error identified by Peter. BACKLIGHT command syntax updated to match Picomite BACKLIGHT value[,DEFAULT|REVERSE] Fix for OPTION ANGLE not defaulting to RADIANS on new RUN command. Fix for OPTION ANGLE not in function TAN() Fix for OPTION ANGLE not in function MATH (ATAN3 x,y) Source now available on GitHub https://github.com/disco4now/ArmmiteF407 Manual and Firmware Armmite F4 Manual.pdf ArmmiteF4_5.07.02beta2.zip Armmite F4 5.07.02 Beta 1 Manual and Firmware ArmmiteF4_5.07.02betas.zip Fixes Resolves the Out of Memory when using EDIT with OPTION LCDPANEL CONSOLE. It affected all LCDs without hardware scrolling. i.e. all except SSD1963_x_16 Resolves issue of double spacing of lines when using the EDIT command with OPTION LCDPANEL CONSOLE set. Function RGB() now accepts GREY ST7735S IPS 160*80 SPI LCDPanel support added. Updates for no Battery These additions can help to setup running without a battery. New Option OPTION RESTART [0|1|2] Option.Restart is save in the Options. It can have three values. 0 - This is the default value set by MMBasic at power up or OPTION RESET. 1 - This is set only whenever the OPTION SAVE command finds it at 0 2 - This can only ever be set explicitly by a MMBasic program with command OPTION RESTART 2 The value of Option.Reset can be read by MM.INFO(RESTART) When you might used these. 1.During testing you can use these two commands to simulate a power restart. OPTION RESET 0 'Put it to the default value CPU RESTART 'Restarts MMBasic These are nearly equivalent to a power refresh it you don't want to keep pulling the power. 2.To test in code when a power restart has occured. IF MM.INFO(RESTART)=1 THEN OPTION.STARTUP 2 Print "Power restart" ENDIF Option.Restart is only ever set to 1 when OPTION SAVE is encountered while it is 0 If you set it to 2, it wont update UNLESS it first goes to 0 .i.e. power restart. Example of No Battery Setup 'This block of code will disable the default LCDPANEL 'Configure the ILI9486_16 and the Touch panel and switch to the serial 'console at 38400 and then restart with the new settings OPTION LCDPANEL DISABLE OPTION LCDPANEL ILI9486_16, LANDSCAPE OPTION TOUCH PB12, PC5 'GUI CALIBRATE 0, 3756, 3901, -882, -647 GUI CALIBRATE 0, 4012, 3900, -1271, -868 BACKLIGHT 80,DEFAULT OPTION FLASH_CS 35 '35 for VET6 77 for Mini VET6 ' ===================================================== ' the Options below need a restart. ' The saving of the Option is delayed when they are ' included in a program. They are saved and a Restart ' is initiaited when OPTION SAVE is initiated. The ' OPTION SAVE must directly follow these options. ' ====================================================== OPTION CONTROLS 100 OPTION SERIAL PULLUP DISABLE 'OPTION SERIAL CONSOLE ON 'OPTION BAUDRATE 38400 OPTION SAVE 'The main program is then placed here 'it must include the MM.STARTUP Subroutine somewhere CLS RGB(GREEN) TEXT 10,10,"READY",,2,2 PRINT "READY" PRINT "----------------" OPTION LIST PRINT "----------------" VAR FRESTORE 'get the saved vars from winbond flash to RAM VAR RESTORE ' restore the variables IF MM.info(STARTUP)=1 THEN OPTION RESTART 2 INC powercount% VAR SAVE powercount% VAR FSAVE ' backup the RAM to Windbond Flash END IF PRINT "POWER COUNT=",powercount% 'MM.STARTUP cannot be located in the Library if battery is missing or 'or battery is flat as the Library pointer would not be restored before 'MM.STARTUP is called. Also OPTION FLASH_CS would not be set to the correct value 'for the VET6 MINI. SUB MM.STARTUP PRINT "Begin MM.STARTUP" PRINT " Option restart="+MM.INFO(RESTART) OPTION FLASH_CS 35 '77 for VET6 MINI LIBRARY RESTORE OPTION AUTORUN ON PRINT "End MM.STARTUP" END SUB ' Put this code in the library first '? "Code in Library Executed" ArmmiteF407 V5.07.02 betas - Library and more. Armmite F4 5.07.02 Beta 0 - Release This release combines the recent performance updates from Peter (@matherp) and changes I have been adding to the ArmmiteF4 over some time, mainly to reduce dependence on the backup battery and to implement the Library.Also added commands so I could use Tom's (@thwill) unit testing code. Also includes various new functionality from the Picomites. Summary of key changes Peter included the hashed variable lookup which can make a huge improvement to performance (solar eclipse now 52 seconds - was 75 seconds) and various other bits of tuning (size and performance). Library implemented. The program memory is no longer cleared if the Options are not seen to be set/valid. This means the program will survive even if battery backup ram is lost. Embedded Options allow configuration to be restored if battery is lost. Additional LCD Panels supported. Option.Brightness can now be made permanent and defaults to 50% Command Line Buffer and Editor added as per Picomites. The Armmite F4 was pretty full is terms of both Flash and Ram for the firmware, room for the addition stuff has been achieved by some tiding up of code however a couple of things have had to go. What is lost The MATH(CHI and MATH(CHI_p functions are removed to recover space.They required a reasonable size data table to support them, so removing them frees up significant flash. FONT 5 changed from 24 x 32 Large font to 16 x 10 Picomite font which frees up significant flash. The original Font 5 will need to be loaded as a defined font if required.If loaded into the library will be about 9K of program space. Armmite F4 User Manual The Armmite F4 manual has been updated with details of all enhancements and contains some other improvement/corrections.(see change log section in the manual for list of changes.) The footer of each page has the page number on both the left and right margins so one will survive if the manual is printed and bound. RESETTING MMBASIC DON'T FORGET HOW TO DO THIS - It will save you when you think all is lost!!! MMBasic can be reset to its original configuration using the following method: Holding KEY 1 down, while applying power (or pressing the RST button). Using the RST in lieu of applying power does not always seem to work so applying power needs to be used if RST does not seem to be doing it. You can connect ground to PE3 pin if you find it difficult to hold the small button down. This will result in the program memory , saved variables and Library being completely erased and all options (security PIN, console baud rate, etc.) will be reset to their initial defaults. This includes setting the console to the USB. A following Key 0 down with a RST (or power up) will switch to the Serial Console if you are not using USB console. You will need to Reset MMBasic after you upgrade to the new firmware as commands have changed and updating the firmware will not explicitly delete the program memory. I have many times thought I have killed an Armmite F4 and resetting MMBasic fixed it. Firmware and Manual The attached zip contains the 5.07.02b0 firmware, the matching Armmite F4 User Manual and the updated ARMF4CFunction.h header file. Armmite F4 Manual.pdf Armmite F4 Manual.zip Source Code and License Geoff has agreed to open-source the firmware on Github with the same licensing as the PicoMite. I will post source on GitHub once I have updated all the source files with the appropriate headers. Testing Peter tested GUI, general performance and a disk soak test after his performance updates were applies to my copy of the source. I have tested stuff as I implemented it but over a long period so hopefully it all still works. I have not tested the SK6812 RGBW led, so not sure whether it works. Anyone that can run existing working code on the new firmware will help verify all is OK. PAGE,WS2812,LCD and HUMID will automatically be saved in their new forms. New or Changed features The program memory is no longer cleared if the Options are not seen to be set/valid. This means the program will survive if battery backup ram is lost. The OPTION SAVE command is implement to allow OPTIONS to be set in the program if required, as for the Micromites. This allows running without a backup battery. The WindBond CS pin is set based on Option.FLASH_CS at startup. This ensures the WindBond won't respond to SPI1 unless the CS is pulled low. The LIBRARY command has been implemented, it uses the WindBond as a secondary storage for the Library during editing or loading of programs, but the library is ultimately stored and run from the normal Program flash. Command History is implemented. The MEMORY command now shows the Backup RAM 4K separately from the Flash usage details. Addition Supported LCD Panels ILI9486_16 480*320 16 bit panel with 34 pin connector SSD1963_5ER_16 East Rising 5 added. Has RGB reversed ILI9488 SPI 480*320 GC9A01 SPI 240*240 round IPS display ST7789 SPI 240*240 IPS display ST7735 SPI 160*128 display ILI9431_I SPI inverse display ILI9481IPS 240*320 IPS display (not recommended,but if you already have one.) New or Changed Commands ------ All this from Peter 5.07.01 betas update --------- It also uses the hashed variable table to provide a good speed update (c33% improvement) Breaking changes: WS2812 command now BITBANG WS2812 LCD command now BITBANG LCD HUMID command now BITBANG HUMID BEZIER drawing command removed - Not removed for now PAGE command now GUI PAGE New: Support of SK2812W LEDs (RGBW) Support for CRC8, CRC16, and CRC32 math functions Support for BITBANG BITSTREAM MID command updated as per latest Pico beta OPTION ESCAPE Support for escape sequences in strings and data statements as per latest Pico beta MM.INFO(EXISTS FILE) MM.INFO(EXISTS DIR) MM.INFO(OPTION suboption) as per Pico OPTION ANGLE Support for * command to use as RUN Support for MM.CMDLINE$ as per Pico Support for MEMORY commands as per Pico (COPY, SET, PACK, UNPACK) ------------------------------------------------------------------------- ------- And these from my notes as I went along.- some duplicates of above ---. BACKLIGHT The backlight brightness is now set based on the Option.Brightness setting. It is now defaulted to 50%. The value stored in Option.Brightness is changed by an optional parameter on the BACKLIGHT command. BACKLIGHT percentage [,S|,R The option S parameter will update the default value which is then used at any future restarts or power ups. The option R parameter will also set the default value which is then used at any future restarts or power ups, but will also indicate that the backlight is to produce the reverse order for brightness. i.e. 0-100 produces a 100-0 output. This can be used to correct the brightness progression where the backlight driver of a particular display expects a reverse pwm signal and would otherwise show 100% as OFF and 0% and ON. The Option.DefaultBrightness will show in Option List if any display is configured. LIBRARY Command implementation The LIBRARY command is now implemented. LIBRARY SAVE as per Micromite LIBRARY DELETE LIBRARY LIST LIBRARY LIST ALL LIBRARY CHECK For F4 only. Checks if library code exists and if it does sets Option.ProgFlashSize to point to the start of the library code. Allows recovery of library if the Options have been lost. MEMORY command shows detail of Library and Saved Variables. BITBANG command added BITBANG BITSTREAM added BITBANG WS2812 now controls single LED if required up to 256 BITBANG WS2812 [O|B|S|W, pin, nbr, value%[() BITBANG WS2812 W, pin, nbr, value%[() now supports SK6812 RGBW Leds BITBANG HUMID for old HUMID command BITBANG LCD for old LCD command GUI PAGE replaces PAGE command. PAGE,WS2812,LCD and HUMID still accepted but converted to new format when saved. WINDBOND FLASH The WindBond flash is hard wired to SPI1 so can respond to the SPI if it's CS pin is not pulled high. The CS pin is now initialised when MMBasic starts, its value is stored as Option.FLASH_CS , the default value is 35 for the VET6 board. The allowed values are 35, 77 (VET6 Mini) and 0 (don't initialise). It can be changed using OPTION FLASH_CS xx It will show in OPTION LIST if not the default value of 35. Pin 35 is also PWM 1C on the VET6, so thi as F_CS so PWM 1C is available. Pin 77 is KEYBD CLK so would prevents the Keyboard being used. The WindBond is 2M and 68K can now be used by MMBasic, 64K as a scratch pad for the library code and 4K as a backup for the 4K of saved vars. SDCARD Error Messages Updated OPTION LCDPANEL CONSOLE now supported on SPI LCD PANELS that allow read from the panel.These don't have hardware scrolling so will be very slow. PEEK restrictions remove to all reading of registers (should be adjusted?) POKE allowed for SPI registers etc i.e. PEEKRANGE adjusted POKE DISPLAY cmd,data,data,.. Added as per Picomite POKE DISPLAY HRES,hres Added as per Picomite POKE DISPLAY VRES,vres Added as per Picomite MATH (CRC8,CRC16,CRC32 .... ) function added as per Picomite EXECUTE command added CALL subname$ added ? CALL functionname$ added SETTICK PAUSE ,target,[nbr]</a>ata,data,.. Added as per Picomite POKE DISPLAY HRES,hres Added as per Picomite POKE DISPLAY VRES,vres Added as</a> added ? CALL functionname$ added SETTICK PAUSE ,target,[nbr"> Added as per Picomite SETTICK RESUME,target,[nbr Added as per Picomite VAR FSAVE -added Copies the 4K of battery backup ram to the WindBond flash. VAR FRESTORE -added Restores the save vars from the WindBond flash to the 4K of battery backup ram. OPTION SAVE and Running without Battery Startup and Reset Quick Reference MM.INFO is allowed and is alias for MM.INFO$ - now can return integer or string as required. MM.INFO$(LCDPANEL) MM.INFO(RESTART) MM.INFO(HEIGHT) MM.INFO(WIDTH) Command History. A 1K Command Line Buffer and Editor has been implemented. There are no programmable function keys, however F5 is configured to send the clear screen sequence to the VT100 terminal. F2,F3,F4,F10,F11,F12 are as per the Picomite. Enhancements when using LCDPANEL as CONSOLE Command Buffer and editing also available. FONT command does not now change the Prompt Font when OPTION LCDPANEL CONSOLE is enabled. Use OPTION LCDPANEL CONSOLE font to change the Prompt Font used by the console. LIST filename added As per Picomite RUN ShortCut * added As per Picomite RUN,parameter now set MM.CMDLINE$ as per Picomite INTERRUPT [myint Command --cmd_csubinterrupt(void){ SETPIN pin, CIN [,option options 1-5 implemented on count pins. Count pins call CSub CFuncInt1-4 if the exist as implement for Picomites. ON KEY asciicode,target variant added as per picomite and H7 Size of ERRMSGMAX increased to 64 to match CMM2 (from 32)so error messages can be longer. OPTION ESCAPE to allow escaping when entering special characters added. MID$ command enhanced to allow variable length replacements. SETTICK PAUSE, myint [,tickno -Added SETTICK RESUME, myint [,tickno -Added AUTOSAVE can now be terminated by entering Control-Z or F1 which will then cause the received data to be transferred into program memory overwriting the previous program. Use F2 to exit and immediately run the program.i.e. as per Picomites. GUI ACTIVATE for TextBox now allows accepts # and works with GUI Interrupt enabled. OPTION LIST now includes Device and MMBasic Version as first line of printout. 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. CFUNCTION and END CFUNCTION added. Issues Resolved Fixed reporting the line of an error when goto/gosub to a line number is used. Fixed issue where ERROR in subroutine called by Interrupt appears in calling line (as fixed in CMM2) Fixed issue with ON ERROR when calling GOSUB with invalid label. (@Thwill reported) Fixed issue with ON ERROR when calling Function with wrong type. (@Thwill reported) LONGSTRING TRIM now allows 0 to LLen(a%()) to allow full buffer to be trimmed LONGSTRING RESIZE fixed as per CMM2 Picomite Fixed issue in GPS receipt (from Picomite) where the first read of GPS(DATE) may give an incorrect answer. Fixed PEEK(SHORT ...) - was returning WORD GUI SWITCH touch response corrected as per other platforms Fixed reporting the line of an error when goto/gosub to a line number is used. Fixed issue where ERROR in subroutine called by Interrupt appears in calling line (as fixed in CMM2) Fixed issue with ON ERROR when calling GOSUB with invalid label. (@Thwill reported) Fixed issue with ON ERROR when calling Function with wrong type. (@Thwill reported) LONGSTRING TRIM now allows 0 to LLen(a%()) to allow full buffer to be trimmed LONGSTRING RESIZE fixed as per CMM2 Picomite Fixed issue in GPS receipt (from Picomite) where the first read of GPS(DATE) may give an incorrect answer. Fixed PEEK(SHORT ...) - was returning WORD GUI SWITCH touch response corrected as per other platforms Hope you have not put those ArmmiteF4 boards back in there shoe boxes! Edited 2025-11-02 21:40 by disco4now F4 H7FotSF4xGT |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |