Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 18:37 10 May 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 : PicoMite V6.00.02 release candidates - all versions

     Page 5 of 44    
Author Message
twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1526
Posted: 12:53pm 16 Mar 2025
Copy link to clipboard 
Print this post

Hi Harm,

  Quote  I'm not interested in discussing how to work around this, e.g., by inserting the escape sequences directly into the code or something similar.

I think it's about constants, not variables or string arrays.
If I want to access the individual elements of an array in the program, it's not so clear what that means; I could write the escape sequence better. In my opinion, Const VT_RED$=Chr$(27)"[91m" would be more readable.
Constants have the advantage that they can't be accidentally changed. But you probably know that yourself.
Kind regards
MIchael
causality ≠ correlation ≠ coincidence
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10067
Posted: 01:31pm 16 Mar 2025
Copy link to clipboard 
Print this post

  Quote  I know it's too late for this release, but maybe an idea for the next one? Is it possible to automatically set the lengths of string constants? This means that MMBasic or the preprocessor limits the memory usage to the value required by the string constant, a kind of automatic "LENGTH" command in the background.


Yes - will be in the release


 
twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1526
Posted: 01:51pm 16 Mar 2025
Copy link to clipboard 
Print this post

  matherp said  Yes - will be in the release...

That's cool! Thanks.  I'm a bit worried, though, about the differences between 2040 and 2350. But at least up to a length of 9 bytes, there shouldn't be any compatibility issues. That's more than I hoped.
Kind regards
Michael
causality ≠ correlation ≠ coincidence
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10067
Posted: 02:28pm 16 Mar 2025
Copy link to clipboard 
Print this post

V6.00.02RC5 is available on

https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip

Implements automatic length adjustment for string constants. Where strings are less that 15 characters (RP2350) or 9 character(RP2040) no heap will be used. NB: prior to this release RP2350 only allowed 7 characters in a string without using heap.

Reduce memory usage of MP3 payback by 48Kbytes - now 97Kb

Terminating a program with ctrl-C now closes all sprites. This makes sense as framebuffers were already deleted so if sprite wer being written to a framebuffer then......
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 459
Posted: 03:25pm 16 Mar 2025
Copy link to clipboard 
Print this post

WOW, rc5 seems to work really well.
Including the speed output in the options :-)

I find the behaviour after ctrl-c better this way (although I understand the desire for a debug flag).

I seem to remember that this PLOP noise after playing a music file or even slightly at startup used to be less, or am I wrong?

Matthias
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 459
Posted: 03:55pm 16 Mar 2025
Copy link to clipboard 
Print this post

Okay, this behavior seems to be new!

In the console, non-displayable characters are suppressed as usual in the output, this was also the case in the HDMI/VGA output ...

> list
m$="Test"
pm$=m$+Chr$(&h80)
Print 1,pm$;"XXX";Len(pm$)
> run
1      TestXXX 5
>


Now a square appears there (see picture).  



Is this new behavior desired?

Matthias
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10067
Posted: 04:06pm 16 Mar 2025
Copy link to clipboard 
Print this post

  Quote  Okay, this behavior seems to be new!


No been like this forever. Some fonts have characters above chr$(127)
Manual page 65
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 459
Posted: 04:20pm 16 Mar 2025
Copy link to clipboard 
Print this post

Oh, I wasn't aware of that before. I guess I only had the console version in mind.
Do I remember the Plop that badly?
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 220
Posted: 01:26am 18 Mar 2025
Copy link to clipboard 
Print this post

Peter,

There may be a problem with the editor in version v6.00.02RC5 when editing a fairly large program?
If you are at about line 500 and scroll up and down a bit, the program stops without a message and can only be brought back to life with a reset and you can start over again.

I was editing m_vt100_noVGA_02026_127.zip when this happened.

> option list
PicoMite MMBasic RP2040 Edition V6.00.02RC5
OPTION SYSTEM I2C GP4,GP5
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
OPTION DISPLAY 40, 80
OPTION SDCARD GP17, GP18, GP19, GP16
>

Greetings,

Jan.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 07:22am 18 Mar 2025
Copy link to clipboard 
Print this post

Hoi Jan,

Dutch: Ik heb jouw hardware niet, maar heb hetzelfde geprobeerd op een RP2040 GEEK. Ik kan het niet reproduceren. Kun je (voor de gein) de CPU speed eens terug zetten op 133MHz. Mijn GEEK draait (weer) op 133MHz vanwege warmteontwikkeling.

English: I cannot duplicate on RP2040 GEEK. Please try CPUSPEED 133000. I reverted the CPU clock on the GEEK to 133 MHz since the unit gets warm easilly, with the linear regulator and built in OLED display in the small plastic package.

Volhout
P.S. I find RC5 stable on my RP2040 platforms, all using genuine RP boards.
Edited 2025-03-18 17:41 by Volhout
PicomiteVGA PETSCII ROBOTS
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 295
Posted: 09:27am 18 Mar 2025
Copy link to clipboard 
Print this post

@Peter

HDMI/USB/2350
I can`t get in what`s so wrong with my libraries but all previous betas, and now 6.02RC5 still wil not LIBRARY SAVE. Only works in a way, if I first CMM2 LOAD and later cmd LIBRARY SAVE

help.zip
Tray if it works for you LOAD and LIBRARY SAVE.

And not with this file only.
Just created another 30 kb lib, and was not able to save (without prior CMM2 LOAD).

Betas were reseting with timeout error and RC5 just resets silently (or at least clears to defaults, can`t say really)

Manual seems allow LIBRARY SAVE anytime you wish without use of CMM2 LOAD.
While it is clever thing to chrunch before library save, I feel official user manual must have additional notes or it might need some firmware fix.
My MMBasic 'sand box'
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7504
Posted: 09:40am 18 Mar 2025
Copy link to clipboard 
Print this post

As far as I can see LIBRARY SAVE simply moves the contents of Flash Slot 0 to Flash Slot 3 just stripping out some spaces and comments as it does so.

If you have a library then you must reload it from scratch after updating MMBasic as tokens may have changed and your existing library, even if it hasn't been deleted, may be corrupt.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10067
Posted: 10:00am 18 Mar 2025
Copy link to clipboard 
Print this post

You need to isolate what in the program is causing the problem and then I can investigate. CMM2 LOAD does a crunch on the program removing blank lines/comments etc. You can also try AUTOSAVE C to load the original program and see if that saves to the library OK.
If that works start adding back comments etc. to see what breaks it.
I didn't write the library routines. So once we identify what causes the problem I can ask Gerry to have a look.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 10:47am 18 Mar 2025
Copy link to clipboard 
Print this post

@electricat

I do not have your platform. But I tested on RP2040 Picomite (on GEEK unit).
I load this program. Then I type "LIBRARY SAVE".

> list
Sub FreePins
Local n,gp$,p,pu$
For n=0 To 29
gp$ = "GP"+Str$(n)
p = MM.Info(pinno gp$)
pu$ = MM.Info(pin p)
Print gp$, p, pu$
Next
End Sub


And (also after a reset) I can type "freepins" any time. The library works.
Please try the same on your platform. As Mick said, the library uses flash slot #3.

> FLASH LIST
Slot 1 in use: "'#B:/banner.bas"
Slot 2 in use: "'#B:/fm/fm_vt100_noVGA_02026_1.bas"
Slot 3 in use: Library


Volhout
Edited 2025-03-18 20:47 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 11:01am 18 Mar 2025
Copy link to clipboard 
Print this post

@electricat,

With your "help.zip" the GEEK also crashes when doing a library save.
Also after I replaced all DIM with LOCAL it still crashes (reboot / USB reconnect).
Something in this program upsets the LIBRARY SAVE.

Volhout
PicomiteVGA PETSCII ROBOTS
 
bfwolf
Regular Member

Joined: 03/01/2025
Location: Germany
Posts: 72
Posted: 11:22am 18 Mar 2025
Copy link to clipboard 
Print this post

  Volhout said  @electricat,

With your "help.zip" the GEEK also crashes when doing a library save.
Also after I replaced all DIM with LOCAL it still crashes (reboot / USB reconnect).
Something in this program upsets the LIBRARY SAVE.

Volhout


@Volhout, @electricat:

Lines 40 to 47 in help.bas..
If picomite=1 Then
If allow_tile=1 Then
TILE height font_h
End If
work_with_drive 'check and choose working drive or stop program if not ready
Else
work_with$="C"
End If 'end picomite


"End If" and "Else" inside are swapped?

More inconsistencies like this perhaps in the code? Didn't look further..

--

Edit: Sorry! Was confused by the indention in help.bas ..  
The Else seems to belong to the outer if - so syntactically OK..

bfwolf
Edited 2025-03-18 21:43 by bfwolf
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 295
Posted: 12:17pm 18 Mar 2025
Copy link to clipboard 
Print this post

@Peter, Mick, Volhout, bfwolf and all

Like Volhout noted, small SUB saving does not causes problem for me too.

I felt it is connected to library size, becouse I was removing 'suspicious' SUBs only later to find other line causes problem. (I did all kind of things like looking at file in HEX editor, removing subs, coments, lines etc... also looking through in notepad++  with all 'invisible' chars switched on ... )

What I did, I CMM2 LOADed library and just copy/pasted to make library 'big' meands, 31 Kb in size. (If I do not RUN anything, technically it does not matter if subs inside of it are duplicated or not.)  
cmm2 crunched.zip

See what I got!  


If FLASH SLOT 3 is 100 kb, no way 31 Kb lib would cause such result  
My MMBasic 'sand box'
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 295
Posted: 12:20pm 18 Mar 2025
Copy link to clipboard 
Print this post

Something wrong with flash adress I believe
My MMBasic 'sand box'
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 971
Posted: 12:23pm 18 Mar 2025
Copy link to clipboard 
Print this post

  electricat said  @Peter

HDMI/USB/2350
I can`t get in what`s so wrong with my libraries but all previous betas, and now 6.02RC5 still wil not LIBRARY SAVE. Only works in a way, if I first CMM2 LOAD and later cmd LIBRARY SAVE


I have had a play with this. Not sure of the root cause but fixed if you use
COLOUR command in lieu of COLOR command.
They use to be the same, but now recognised as separate commands I think.

The first use of COLOR will save to library but anymore and it hangs.

Use COLOUR and it good for me.

Gerry
Latest F4 Latest H7 FotS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 12:34pm 18 Mar 2025
Copy link to clipboard 
Print this post

  disco4now said  

The first use of COLOR will save to library but anymore and it hangs.
Use COLOUR and it good for me.

Gerry


I am sure Peter did this on purpose...    
There was a discussion years agou about COLOUR versus COLOR..
.
.
Edited 2025-03-18 23:15 by Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 5 of 44    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025