|
Forum Index : Microcontroller and PC projects : PicoMite V6.03.02 betas
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
V6.03.02b7 is now available from https://github.com/UKTailwind/PicoMite/releases/tag/PicoMite-V6.03.02b7 New: TILEMAP LOAD MATH CLAMP MM.INFO(TELNET) Fixed: background FRAMEBUFFER MERGE on larger panels READ now finds DATA statements in the library |
||||
| terekgabor Senior Member Joined: 02/01/2026 Location: HungaryPosts: 129 |
Great job! Thanks for it Peter! G@bor |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 609 |
Peter, please make the MAP(n) function work in MODE 1 as well, returning values for the palette color. MODE 3 > ? Map(5) 32896 MODE 1 > ? Map(5) Error : Invalid for Mode |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
The map command doesn't work for mode 1 and therefore nor does the map function. The colours are fixed and just need a simple 16 element array in a program. |
||||
| JanVolk Guru Joined: 28/01/2023 Location: NetherlandsPosts: 411 |
Peter, A few wishes and comments. Scrolling up and down on a PicoMite was always possible via a terminal (Tera Term), and more recently, it became possible on VGA and HDMI displays using the `LIST` command as well. However, it would also be useful for other commands—such as `> LIST PINS(RP2350B)` and `> HELP OPTIONS`—to include prompts like "UP=prev ANY KEY=next" rather than just "PRESS ANY KEY...". Since the mouse cursor can now be used with graphical displays, it would be great to be able to drag the cursor over text to copy it and then paste it—a workflow that works very conveniently in Tera Term. This was largely addressed in `fm`, but is it currently impossible due to potential memory limitations? Since I am missing the `SAVE` command in `fm` for saving programs, using short filenames is really only attractive for use with `SAVE`. Or perhaps I simply missed that feature? The mouse cursor now works correctly with `EDIT`. However, if I add help text later and get close to the "banner point," the editor sometimes behaves strangely; the starting position might shift, or the next line might be placed beyond the end point (which becomes apparent when running `LIST`), though this can be fixed with a correction. I read somewhere that `fm` allows for background audio playback, but the audio stops as soon as a program is started or `EDIT` is launched. This is understandable given the many functions within `fm`. How do I create a new folder on a USB drive (e.g., `C:/`) from within `fm`? Jan. |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
manual page 32 F11 or K Of course, running a program initialises everything and editing uses all the memory They don't work the same way. In general the code is now huge and there is no space for "nice-to-haves" without lots more conditional compilation to stop all of the rp2040 variants getting it, otherwise they end up with no A: drive space. 6.03.02 is intended to fix some specific Basic limitations like single element arrays and functions returning arrays that make the language more powerful. Other than that sort of thing and the odd bug fix I don't intend to add more "usability" changes. |
||||
| bfwolf Senior Member Joined: 03/01/2025 Location: GermanyPosts: 258 |
Did you maintain the search order for DATA statements in your fix? In other words, are the DATA statements in the "MAIN" program searched first, followed by those in the SUBs? That would be good! It would allow a SUB requiring "private DATA" to use a preceding label — such as `SubName_DATA` — and position the READ pointer to it using `RESTORE SubName_DATA`. Thanks to the search order, there wouldn't be any "conflicts" — such as the "MAIN" program accidentally reading DATA from SUBs because it doesn't expect them to exist and has no way of knowing how many there are. That said, the practice of always placing a label before DATA statements would certainly make sense. bfwolf Edited 2026-09-17 01:40 by bfwolf |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
The order is main program first and then library. All data statements have global scope irrespective of where they appear and the program maintains a pointer to the last one read. Absolutely |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 612 |
small remark: MATH CLAMP entry is missing in the manual ... Gerald 73 de OE1HGA, Gerald |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 612 |
Peter, is there a reason why the OPTION PLATFORM is not saved with OPTION DISK SAVE ? I use it to distinguish on what paticular HW configuration a progran is running on. So it would be helpful if it is restored with OPTION DISK LOAD. Otherwise I have to manually set it up again. Gerald 73 de OE1HGA, Gerald |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
Thanks - should be there now |
||||
| homa Guru Joined: 05/11/2021 Location: GermanyPosts: 693 |
Thank you for MM.INFO (TELNET) The BBC engine has an internal queue with eight entries per channel (qr and qw). BBCSoundQueue() returns -1 if the queue is full. In that case, PLAY BBC SOUND waits and calls routinechecks() until a slot becomes available. However, MM.INFO(SOUND) only reports “BBC” or the playback status, not the queue’s current capacity. Is there a designated method for determining the current capacity of the queue within a playback loop? Or is your recommended approach to keep a safe number of notes in the queue and rely on the internal wait function of PLAY BBC SOUND when necessary? But that unnecessarily slows down the program code, doesn’t it? I’m particularly interested in how your game code handles continuous polyphonic background music without blocking the game loop. The relevant source code sections I’ve found are io/Audio.c, io/AudioBBC.c, and core/MM_Misc.c. MM.INFO(SOUND) returns “BBC” while playback is in progress. The actual queue level exists only internally in AudioBBC.c. uint8_t qr, qw; It has a maximum of eight entries, and BBCSoundQueue() returns -1 when the queue is full. The caller in Audio.c intercepts exactly that and waits with CheckAbort() and routinechecks() until space becomes available again. Wouldn’t it be better to output the value of BBCSoundQueue() instead of “BBC”? Somehow, it seems I haven’t quite got to grips with the concept yet. Matthias |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11882 |
All: Please do not try and use b7 with a RP2040. There seems to be a compiler bug that I am trying to find. To save flash space I converted a file(FileIO.c) to use Os compilation rather than O2. This works perfectly on the rp2350 but on the rp2040 build the firmware starts and crashes repeatedly. Lots of other modules use Os so I don't know what is causing the issue but for the moment stick with b6 or below. Edited 2026-09-17 07:44 by matherp |
||||
| phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 3381 |
Loaded b7 on the LCD version before the warning. Tested a variety of programs including the rotating cube, all ok. So far the only issue has been saving to A: causes a re-boot and an empty file created. Saving to B: works fine. > option list PicoMite MMBasic RP2040 V6.03.02b7 OPTION SYSTEM SPI GP18,GP19,GP20 OPTION SYSTEM I2C GP14,GP15 OPTION FLASH SIZE 16777216 OPTION COLOURCODE ON OPTION PICO OFF OPTION CPUSPEED (KHz) 378000 OPTION DISPLAY 50, 133 OPTION LCDPANEL ST7796S, RLANDSCAPE,GP25,GP17,GP16,GP24 OPTION TOUCH GP21,GP23 GUI CALIBRATE 0, 235, 70, 1301, 841 OPTION GUI CONTROLS 10 OPTION SDCARD GP22 OPTION RTC AUTO ENABLE > |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 723 |
What is the syntax of the MATH CLAMP command? |
||||
TassyJim![]() Guru Joined: 07/08/2011 Location: AustraliaPosts: 6606 |
From Peters github page: also: Jim Edited 2026-09-17 14:17 by TassyJim VK7JH MMedit |
||||
| hhtg1968 Senior Member Joined: 25/05/2023 Location: GermanyPosts: 215 |
Hello. The "help" command tries to read from a:/help.txt. Where to find a useful version of help.txt? i very often have to read the user manual to get the right number of parameters or similar, so the help command cound be useful to work only on the pico computer... |
||||
TassyJim![]() Guru Joined: 07/08/2011 Location: AustraliaPosts: 6606 |
I don't know if the help.txt has been updated, but here are some recent threads. https://www.thebackshed.com/forum/ViewTopic.php?TID=18731 https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=17865 Jim VK7JH MMedit |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 6118 |
Hi Peter, While we are in beta, there is a suggestion I would like to make. It is about VAR SAVE / VAR RESTORE. There is 16kbyte (current value) reserved for this. And probably few are using it. One Reason might be that it evaporates (clears) when a new program is loaded (even when your new program does not use VAR RESTORE). So when you develop using MMEdit, it is not non-volatile. There is good reason to clear it. Not disputing that. I do not wat to change the function. But question the way storage happens. In stead of reserving 16kbyte flash for it, why not use a file on A:/ ?? Use an arbitrary file name , such as ".var.bin", and hand the free flash space to either program memory, flash slot size, A:/ drive size. For the people that do not use it, there is 16k more space for things they do use. For the people that var save only 1 variable (a string ? ) minimal flash space is used (small file on A:/). For the people that want to VAR SAVE more data, exceeding 16k, a solution is possible. When the A:/ drive is full, no file can be created, and VAR RESTORE would simply not happen. Just a thought... Volhout PicomiteVGA PETSCII ROBOTS |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 6118 |
I have seen occasional disconnects when using MMEdit/MMCC. That may be related. Typically they happen using the F2 command, after an upload to pico is completed, and before the RUN command can be issued by MMEdit. Regards, Volhout PicomiteVGA PETSCII ROBOTS |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |