Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : PicoMite V6.00.01 release candidates - please test thoroughly

   Page 2 of 23    
Posted: 07:56pm
26 Nov 2024
Copy link to clipboard
matherp
Guru

V6.00.00RC2

This will delete all options and the A: drive

PicoMiteRP2350V6.00.01RC2.zip

PicoMiteRP2040V6.00.01RC2.zip

Includes full descriptions of reserved pins in mm.info(pin n)
Allows mm.info(pinno) to interrogate hard allocated pins (HDMI and Pico_W)
 
Posted: 08:54pm
26 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

Any fix for the CWD$ or MM.INFO(PATH) in this release ?

Volhout
 
Posted: 08:57pm
26 Nov 2024
Copy link to clipboard
thwill
Guru


  Volhout said  Hi Peter,

Any fix for the CWD$ or MM.INFO(PATH) in this release ?

Volhout


Is there really a problem with CWD$ ? The only thing that should change its value is CHDIR or DRIVE, it has nothing to do with the drive+directory that the program file being RUN is in.

Best wishes,

Tom
Edited 2024-11-27 06:59 by thwill
 
Posted: 09:31pm
26 Nov 2024
Copy link to clipboard
javavi
Guru


  matherp said  
Includes full descriptions of reserved pins in mm.info(pin n)
Allows mm.info(pinno) to interrogate hard allocated pins (HDMI and Pico_W)

PicoMiteHDMI MMBasic RP2350A Edition V6.00.01RC2
> ? MM.Info(pinno GP11)
15
> ? MM.Info(pinno GP12)
Error : Invalid pin
>

Edited 2024-11-27 07:41 by javavi
 
Posted: 09:46pm
26 Nov 2024
Copy link to clipboard
Volhout
Guru

Tom,

Some code in robots uses these. Code you added for GameMite. And with the new 6.00.01 it does not work anymore as before. Sure I can make it work again by changing robots. Peter asked to test, he may still decide to leave it as is.

Volhout
Edited 2024-11-27 08:02 by Volhout
 
Posted: 10:10pm
26 Nov 2024
Copy link to clipboard
thwill
Guru


Volhout,

Please point me at a specific version of the Robots code and I will take a look tomorrow with the latest firmware on the RP2040 ... I don't have a 2350.

Best wishes,

Tom
Edited 2024-11-27 08:11 by thwill
 
Posted: 07:44am
27 Nov 2024
Copy link to clipboard
Volhout
Guru

@Peter, Tom,

Demo of the difference between 5.09.00rc5 and 6.00.01rc1

Create this program (in my case called "path_test.bas".

Print Cwd$
Print MM.Info(path)


Store it in the SD card in the folder "B:/path_test/"

files
B:/path_test
00:03 01-01-2000         33  path_test.bas
0 directories, 1 file


When you run this program from the A:/ drive the difference is this:

V5.09.00
> option list
PicoMite MMBasic Version 5.09.00RC5
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION COLOURCODE ON
OPTION SDCARD GP17

> a:
> run "b:/path_test/path_test.bas"
A:/
B:/path_test/


V6.00.01
> option list
PicoMite MMBasic RP2040 Edition V6.00.01RC1
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION COLOURCODE ON
OPTION SDCARD GP17

> a:
> run "b:/path_test/path_test.bas"
A:/
A:/


The content of MM.INFO(PATH) is different between 5.09.00 and 6.00.01

For Tom: if you have any working version of petrobot on SD card, and use RP2040, you see it immediately, no need to install a new version. No special version needed.

Otherwise get the version here:

petrobot
The version "robots601.bas" is the one that runs on RP2040 and RP2350, but the normal "robots.bas" also works on Game*Mite... when started from the commandline...


Volhout

P.S. Tom, for V6.00.01 you have to install your "alternate package". Note that you have to run the "install-a.bas" from the folder. Running it like RUN "B:/GameMite/install.bas" also does not work (maybe same issue).
Edited 2024-11-27 17:49 by Volhout
 
Posted: 07:52am
27 Nov 2024
Copy link to clipboard
matherp
Guru

I believe I made mm.info(path) and cwd$ compatible with CMM2 hence the change
 
Posted: 07:55am
27 Nov 2024
Copy link to clipboard
Volhout
Guru

@ Peter,

The 6.00.0x series also have a difference in executing multi-command lines.
To be honest, looking at these lines I am not proud they exist, but the 6 series has problems with lines like this, that where OK in 5.09.00

IF vga=0 THEN FRAMEBUFFER CREATE ELSE MODE 2 END IF


If you change the same in to

IF vga=0 THEN
 FRAMEBUFFER CREATE
ELSE
 MODE 2
END IF


It works as in previous version.

This is not a bug, only a difference. The single line is ugly at least. I cannot remeber where this line is, maybe GemsNRocks... I can find it back when you need me to.

Volhout
Edited 2024-11-27 17:56 by Volhout
 
Posted: 08:03am
27 Nov 2024
Copy link to clipboard
thwill
Guru


  matherp said  I believe I made mm.info(path) and cwd$ compatible with CMM2 hence the change


Peter the MM.INFO(PATH) thing isn't a difference it's a bug, if it doesn't always return the drive/directory containing the file being RUN then what is it for? ... you need it so that a program can locate any external assets without relying on their location being hard coded or the user executing from a specific directory.

Best wishes,

Tom
 
Posted: 08:59am
27 Nov 2024
Copy link to clipboard
matherp
Guru

OK understand - will fix
 
Posted: 10:58am
27 Nov 2024
Copy link to clipboard
matherp
Guru

Hopefully now fixed - no version change


PicoMiteRP2040V6.00.00RC2.zip

PicoMiteRP2350V6.00.01RC2.zip
 
Posted: 11:36am
27 Nov 2024
Copy link to clipboard
phil99
Guru


Re multi-command lines.
To get consistent results with IF statements, all versions, I would change this:-
IF vga=0 THEN FRAMEBUFFER CREATE ELSE MODE 2 END IF

to this:-
IF vga=0 THEN :FRAMEBUFFER CREATE :ELSE :MODE 2 :ENDIF


Edit.
Just tried the original on RP2350 VGA 6.00.01RC1 and it ran without problem.
Edited 2024-11-27 21:45 by phil99
 
Posted: 11:38am
27 Nov 2024
Copy link to clipboard
Pluto
Guru

Peter, shouldn't it be 6.00.01 also for RP2040!
 
Posted: 11:46am
27 Nov 2024
Copy link to clipboard
matherp
Guru

Yes just renamed the files incorrectly - the firmware should be correct


PicoMiteRP2040V6.00.01RC2.zip
 
Posted: 06:17am
28 Nov 2024
Copy link to clipboard
disco4now
Guru


  Volhout said  

IF vga=0 THEN FRAMEBUFFER CREATE ELSE MODE 2 END IF


Volhout


From the manual only a multiline IF statement ends with  and END IF

In the single line version END IF is not allowed/required

IF expr THEN stmt [: stmt]
or
IF expr THEN stmt ELSE stmt

If added the END and IF seem to be treated as variables

> list
'Option explicit
'Dim integer x,y,vga
If vga<>0 Then Print "x"  Else  Print "y" END IF
>
> run
y 0 0         <------ END and IF printed
>
>



With Option Explicit they are trapped

>
> list
Option explicit
Dim integer x,y,vga
If vga<>0 Then Print "x"  Else  Print "y" END IF
>
> run
y
[3] If vga<>0 Then Print "x"  Else  Print "y" END IF
Error : END is not declared
>

 
Posted: 07:26am
28 Nov 2024
Copy link to clipboard
phil99
Guru


ENDIF appears to be less of a problem than END IF.
 
Posted: 07:34am
28 Nov 2024
Copy link to clipboard
vegipete
Guru


  disco4now said  In the single line version END IF is not allowed/required

Note the colon (:) after the THEN. This allows multiple statements after the IF and/or the ELSE, and requires the final END IF.
 
Posted: 08:01am
28 Nov 2024
Copy link to clipboard
disco4now
Guru


  vegipete said  
  disco4now said  In the single line version END IF is not allowed/required

Note the colon (:) after the THEN. This allows multiple statements after the IF and/or the ELSE, and requires the final END IF.

Agree a single line broken by : requires an END IF, but this is then a multi line IF syntax.

I was referring to the original example which is a single line IF command/statement no colons)

The manuals shows the syntax for the two are different  in that the single line versions does not use the END IF.
Edited 2024-11-28 18:02 by disco4now
 
Posted: 05:27pm
28 Nov 2024
Copy link to clipboard
matherp
Guru

V6.00.01RC3


PicoMiteRP2350V6.00.01RC3.zip


PicoMiteRP2040V6.00.01RC3.zip

Fixes various bugs when editing in mode 3
Fixes corruption when moving sprites

New Commands

LOAD PNG fname$ [, x] [, y] [,transparent] [,alphacut] 'loads and displays a png file 'fname' If no extension is specified .png will be automatically added to the filename. The file must be in RGBA8888 format which is the normal default. If specified 'x' and 'y' indicate where on the display or framebuffer the image will appear. The optional parameter 'transparent' (defaults to 0) specifies one of the colour codes (0-15) which will be allocated to pixels in the png file with an alpha value less than 'alphacut' (defaults to 20). If 'transparent' is set to -1 the png image is written with pixels with an alpha value less than 'alphacut' missed completely.


SPRITE LOADPNG [#]b, fname$ [,transparent] [,alphacut] 'loads SPRITE number b from the png file fname$. If no extension is specified .png will be automatically added to the filename. The file must be in RGBA8888 format which is the normal default. The optional parameter 'transparent' (defaults to 0) specifies one of the colour codes (0-15) which will be allocated to pixels in the png file with an alpha value less than 'alphacut' (defaults to 20). The variable transparency can then used with the command SPRITE SET TRANSPARENT n or FRAMEBUFFER LAYER n to display the sprite with the transparent region hidden.
 
   Page 2 of 23    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025