![]() |
Forum Index : Microcontroller and PC projects : PicoMite V6.00.02 release candidates - all versions
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4825 |
@Peter, This is a major step back.... Pro - Bubbles is another 10% faster (that is good). Con - The filemanager does not show the highlight (focus) bar anymore..?? Con - Petrobot cannot find the image files..?? I stopped testing here. This is after a Clear flash. And full install. Volhout P.S. just saw you found something wrong. Edited 2025-04-15 22:24 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
OK: I think this is ready to test now. Certainly works with Petscii, LA_24_2, bubble, grainbench, and solar_eclipse RP2040VGA PicoMiteRP2040VGAV6.00.02RC14.zip RP2350VGA PicoMiteRP2350VGAV6.00.02RC14.zip HDMIUSB PicoMiteHDMIUSBV6.00.02RC14.zip Edited 2025-04-16 01:42 by matherp |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
V6.00.02RC15 is available on https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip Thanks to bleep finding a very strange performance issue in his bubble universe code I've been able to track down an underlying day-1 inefficiency in the MMbasic memory handling. This release optimises around that and should give a performance improvement for most applications. The code change is very small and doesn't affect any functionality. I believe it to be robust but if you see anything strange please report your findings. NB: there are known issues in 800x600 and 848x480 resolutions in RP2350 VGA and HDMI versions. I'm looking at this. UPDATE Fixed at 18:05 UTC Edited 2025-04-16 04:06 by matherp |
||||
toml_12953 Guru ![]() Joined: 13/02/2015 Location: United StatesPosts: 384 |
This was a problem in WebMiteRP2350V6.00.02RC14 and is still a problem in RC15. When I run the logtable below, the processor reboots at about 9955. 110 LET W=0 120 FOR X=1 TO 9 130 PRINT X; 140 FOR Y=0 TO 9 150 LET Z=(10*X+Y)*.1 160 IF ABS(10^W-Z)>.001 THEN 210 170 LET T=INT(10000*W) 190 PRINT TAB(6*Y+4);T; 200 GOTO 230 210 LET W=W+.0001 220 GOTO 160 230 NEXT Y 240 PRINT 250 NEXT X 260 END Here's my OPTION LIST: WebMite MMBasic RP2350A Edition V6.00.02RC15 OPTION FLASH SIZE 4194304 OPTION LIBRARY_FLASH_SIZE 34000 OPTION COLOURCODE ON OPTION CASE UPPER OPTION TAB 8 OPTION KEYBOARD US OPTION CPUSPEED (KHz) 252000 OPTION LCDPANEL VIRTUAL_C OPTION WIFI MySpectrumWiFie0-2G, **************, PICORP2350 Edited 2025-04-16 03:59 by toml_12953 |
||||
toml_12953 Guru ![]() Joined: 13/02/2015 Location: United StatesPosts: 384 |
Another problem I'm having is that, when I left-click my mouse in TeraTerm (VT100), I get this: WebMite MMBasic RP2350A Edition V6.00.02RC15 Copyright 2011-2025 Geoff Graham Copyright 2016-2025 Peter Mather PICORP2350 connecting to WiFi... Connected 192.168.1.144 ntp address 172.234.37.140 got ntp response: 15/04/2025 14:01:09 >[M &)[M#&)[M !! Edited 2025-04-16 04:08 by toml_12953 |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
Those are the escape sequences the mouse is generating. Did you reboot while in the editor? Enter the editor and then exit cleanly and it should then be OK Put some diagnostics in and work out which command is causing the problem and what the variables are at the time - then report. Sounds like a overflow or divide by zero or similar that isn't being trapped Can't replicate ![]() Edited 2025-04-16 04:26 by matherp |
||||
toml_12953 Guru ![]() Joined: 13/02/2015 Location: United StatesPosts: 384 |
I'm using a Dell wireless mouse connected to my Core i9 ASUS motherboard. The PicoMite 2W is connected via a USB 3.0 port. When I turn TRACE ON, before the processor resets, I get the message: Error: Invalid address - resetting If I change line 170 to T=INT(99*W) the program completes. If I change it to INT(100*W), the crash occurs. W=0.9956, x=9, y=9, z=9.9, t=99 In the statement 170 T=INT(nn*W) Any number, nn, over 99 makes the crash occur. Original program: 110 LET W=0 120 FOR X=1 TO 9 130 PRINT X; 140 FOR Y=0 TO 9 150 LET Z=(10*X+Y)*.1 160 IF ABS(10^W-Z)>.001 THEN 210 170 LET T=INT(10000*W) 190 PRINT TAB(6*Y+4);T; 200 GOTO 230 210 LET W=W+.0001 220 GOTO 160 230 NEXT Y 240 PRINT 250 NEXT X 260 END |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
Don't understand. As per my previous post the program as you listed it works fine for me 170 LET T=INT(10000*W) |
||||
Bleep Guru ![]() Joined: 09/01/2022 Location: United KingdomPosts: 570 |
Hi Peter, I have been able to test all the 3 builds you did around 4pm, from above, 2040VGA, 2350VGA, HDMIUSB all appear to work great with the programs I've tested. There is a definate improvement in speed, in the 2350 builds, however I am seeing really great speed ups in 2040 programs, In one case a loop timer, which used to give 607mS is now giving 415mS and another version was giving 683mS now gives 425mS so between 50 and 60% speed up, it seems especially good when using frame buffers, I never could understand why frame buffers were so much slower on a 2040, now they are not!. Thanks for persuing this Peter. Regards Kevin. |
||||
toml_12953 Guru ![]() Joined: 13/02/2015 Location: United StatesPosts: 384 |
https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip Thanks to bleep finding a very strange performance issue in his bubble universe code I've been able to track down an underlying day-1 inefficiency in the MMbasic memory handling. This release optimises around that and should give a performance improvement for most applications. The code change is very small and doesn't affect any functionality. I believe it to be robust but if you see anything strange please report your findings. NB: there are known issues in 800x600 and 848x480 resolutions in RP2350 VGA and HDMI versions. I'm looking at this. UPDATE Fixed at 18:05 UTC Reboot problem discovered! The problem was that I had OPTION ESCAPE SUB MM.END PRINT "\n\nEND PROGRAM\n" END SUB in the library. I don't know why that should cause a program crash but when I removed it from the library, the logtable program stopped crashing. When I put that in the program itself, it crashed again. Even a null sub with no print statement in it SUB MM.END END SUB will make the program crash. Edited 2025-04-16 05:12 by toml_12953 |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 456 |
> option list PicoMiteHDMI MMBasic USB RP2350A Edition V6.00.02RC15 OPTION SERIAL CONSOLE COM2,GP8,GP9 OPTION SYSTEM I2C GP20,GP21 OPTION FLASH SIZE 4194304 OPTION COLOURCODE ON OPTION KEYBOARD GR OPTION CPUSPEED (KHz) 283200 OPTION RESOLUTION 720x400 OPTION DISPLAY 33, 90 OPTION SDCARD GP22, GP26, GP27, GP28 OPTION AUDIO GP10,GP11', ON PWM CHANNEL 5 OPTION RTC AUTO ENABLE OPTION MODBUFF ENABLE 1024 OPTION PLATFORM HDMIUSB In the editor, when exiting with ESC, at the confirmation prompt, there is a shift in the text display. |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4825 |
@Peter, RC15 looks good up til now. From the MMBasic chess program (that shows C-stack) I have the impression it uses slightly more C-stack, but never the less, chess runs still fine. Have tested 2040 VGA only up to now. Volhout Edited 2025-04-16 18:39 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
This was a bug that I've now fixed and will be in the next version. I asked Cortana to rewrite your code in "modern" Basic and this is the result W = 0 For X = 1 To 9 Print X; For Y = 0 To 9 Do Z = (10 * X + Y) * 0.1 If Abs(10 ^ W - Z) <= 0.001 Then T = Int(10000 * W) Print Tab(6 * Y + 4); T; Exit Do End If W = W + 0.0001 Loop Next Y Next X End Good news. I was pretty hopeful as the change is very minor but the small bit of code was complex to get right. The way it works is that variable data grabs memory from the top of the heap down and previously temporary system data did the same. Now system data grabs memory from the bottom of the heap up. System data is inherently more transient so the search for memory is much faster if it doesn't have to compete with static variables (arrays, framebuffers etc.) Now we are really splitting hairs ![]() This is because height of 400 (720x400) doesn't divide by the font height of 12. Geoff's original code places the status line characters by reference to the bottom of the screen. This doesn't work for tile colouring and I adjusted the placement to be n characters down the screen but missed that one. Will fix in the next RC (or will that be the release?) Great: You may find RC15 is a little bit faster again Edited 2025-04-16 20:10 by matherp |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 456 |
Now we are really splitting hairs ![]() ![]() Edited 2025-04-16 23:07 by homa |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1136 |
Thank you ![]() |
||||
mace Newbie ![]() Joined: 04/03/2023 Location: FinlandPosts: 7 |
Hi! Something is different in PORT command in versions picomite_firmware v5.08.00 and picomiterp2040v6.00.01. Test: Port(gp4,4)=15 in V5 Works ok. Port(gp4,4)=15 in V6 not working right. Something changed between versions? |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10015 |
This is known bug and is noted in the bug list on Geoff's site. Use the latest RC and it is fixed |
||||
circuit Senior Member ![]() Joined: 10/01/2016 Location: United KingdomPosts: 268 |
Something is different in PORT command in versions picomite_firmware v5.08.00 and picomiterp2040v6.00.01. Test: Port(gp4,4)=15 in V5 Works ok. Port(gp4,4)=15 in V6 not working right. Something changed between versions? I have just tried it in v.5.08.00 and in version 6.00.02RC15 and it works identically. No problems observed. Edit. And Peter answered it in the couple of minutes that I took to test. Edited 2025-04-16 23:41 by circuit |
||||
Bleep Guru ![]() Joined: 09/01/2022 Location: United KingdomPosts: 570 |
Hi Peter, I have now loaded RC15 onto a 2040 VGA USB, 2350 VGA, 2350 HDMI USB, no problems found, in my tests this version is *very* slightly slower than the previous RC14 with the memory fix, about the sort of difference you see between different compiles. For example Basic Chess, running Bench to 2 ply 2040 VGA was taking 2:05 (two minutes and 5 seconds), now 2:07, Solar Clock 26.6mS now 26.8mS so basically nothing, compared to the memory fix gains. All in all looking great. Thanks. :-) Kevin. |
||||
toml_12953 Guru ![]() Joined: 13/02/2015 Location: United StatesPosts: 384 |
This was a bug that I've now fixed and will be in the next version. I asked Cortana to rewrite your code in "modern" Basic and this is the result W = 0 For X = 1 To 9 Print X; For Y = 0 To 9 Do Z = (10 * X + Y) * 0.1 If Abs(10 ^ W - Z) <= 0.001 Then T = Int(10000 * W) Print Tab(6 * Y + 4); T; Exit Do End If W = W + 0.0001 Loop Next Y Next X End Thanks for spending time on this. For new programs, I write them that way myself but I have literally thousands of legacy BASIC programs. I'm pretty old so if I converted 10 programs a day, I wouldn't have time to convert them all! |
||||
![]() ![]() ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |