Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 17:53 18 Dec 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 User Manual V6.01.00 Updates

Author Message
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 08:50am 17 Dec 2025
Copy link to clipboard 
Print this post

I decided to start this topic for any PicoMite User Manual V6.01.00 updates to avoid cluttering the main firmware topic.

If you find anything wrong with the manual, please post it here.  I might not acknowledge every post but I will collect all suggestions and from time to time release a new revision in this topic.

The manual was checked and rechecked so there should be little wrong with it, but then that is probably just hopeful thinking.

Geoff
Geoff Graham - http://geoffg.net
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1702
Posted: 09:09am 17 Dec 2025
Copy link to clipboard 
Print this post

Hi Geoff,
thanks for your great work!

Can you confirm that the "PicoCFunctions.h" (V1.5,  #define BaseAddress   1000030C) in the C Routines folder is up to date and works with this MMBasic version? I'm asking because I have version v2.0.1, which seems more "modern" to me. I think CSUBs are being neglected and have been somewhat forgotten.





If there are any further updates to the manual, I would appreciate it if the size of the buffer required/expected by the Play MP3, WAV, and FLAC commands were also specified. For example, 30 KB heap is needed.

Kind regards
Michael
causality ≠ correlation ≠ coincidence
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 09:31am 17 Dec 2025
Copy link to clipboard 
Print this post

Peter, I believe that this is one for you.

Geoff
Geoff Graham - http://geoffg.net
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1075
Posted: 10:17am 17 Dec 2025
Copy link to clipboard 
Print this post

This is an up to date PicoCFunctions.h that covers both PICO and PICO2
v2.0.2  Calltable address now 0x1000023C for RP2350 v6.01.00 Release

PicoCFunctions.zip
F4 H7FotSF4xGT
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2873
Posted: 11:33am 17 Dec 2025
Copy link to clipboard 
Print this post

   page 62 said  OPTION LCDPANEL ILI9488, OR, DC, RESET, CS [,BL] [,INVERT]
Initialises a TFT display using the ILI9488 controller. This supports 480 * 320 resolution. Note that this controller has an issue with the MISO pin which interferes with the touch controller. For this display to work the MISO pin must not be connected.
This could at least be updated to "the MISO pin must not be directly connected."

Or a more complete description
Edited 2025-12-17 21:48 by phil99
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10709
Posted: 01:06pm 17 Dec 2025
Copy link to clipboard 
Print this post

Geoff. The PicoCFunctions.h above from Gerry (disco4now) should replace the one currently in the download
Edited 2025-12-17 23:06 by matherp
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 03:01pm 17 Dec 2025
Copy link to clipboard 
Print this post

  matherp said  Geoff. The PicoCFunctions.h above from Gerry (disco4now) should replace the one currently in the download

OK.  The download has been updated.

Geoff
Geoff Graham - http://geoffg.net
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1702
Posted: 03:32am 18 Dec 2025
Copy link to clipboard 
Print this post

Hi Geoff,
I'm wondering if it would be useful to include the working command "MM.INFO(CALLTABLE)", which displays the BaseAddress, in the manual. Are there any reasons not to do so?
> ? hex$(MM.INFO(CALLTABLE))
1000023C

Kind regards
Michael


Additionally, it would be helpful, in my opinion, to mention the respective compiler command line for the different hardware (RP2040, 2350), e.g. for Pico2,
bin\arm-none-eabi-gcc -c -mcpu=cortex-m33 -mfloat-abi=hard -mthumb -Wall -Wno-main -ffunction-sections -O3 -fPIC -I. %1.c -o %1.o

or something similar.
This could also be done in a separate CSub-PDF. My goal is to lower the barriers to writing CSubs. As we have seen here, this can lead to amazing results.

I'm sorry if I'm causing any more work ...

Breakdown of the Compiler Flags:

arm-none-eabi-gcc: The compiler driver. it coordinates the preprocessor, the actual compiler, and the assembler.
-c: Compile only. This generates an object file without performing the linking stage.
-mcpu=cortex-m33: Defines the target architecture. The Cortex-M33 is the core of the RP2350 (Pico 2).
-mfloat-abi=hard: Enables the hardware floating-point unit (FPU) of the chip for calculations.
-mthumb: Generates code using the compact Thumb instruction set.
-O3: Optimization Level 3. The compiler attempts to make the code as fast as possible.
-fPIC: Position Independent Code. This is essential for CSubs because they are loaded into MMBasic RAM at varying memory addresses.
-I.: Adds the current directory (.) to the search path for header files like your PicoCFunctions.h.

Why this is important:

For MMBasic users, this command is often contained within a Batch file (.bat on Windows). The variable %1 acts as a placeholder for your C program's filename.

Note: If you were compiling for the older RP2040 (Pico 1), the flags would be -mcpu=cortex-m0plus and -mfloat-abi=soft (as the M0+ lacks a hardware FPU).
(Source: GEMINI-KI)

Edited 2025-12-18 13:57 by twofingers
causality ≠ correlation ≠ coincidence
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 502
Posted: 04:41am 18 Dec 2025
Copy link to clipboard 
Print this post

The TAB function doesn't work the way the manual states. TAB(n) seems to output n spaces no matter what column the print starts in. The manual (page 200) says it will only output spaces until column n is reached. TAB as described in the manual would make it much easier to get tabulated output neatly aligned.
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 04:43am 18 Dec 2025
Copy link to clipboard 
Print this post

  twofingers said  I'm wondering if it would be useful to include the working command "MM.INFO(CALLTABLE)", which displays the BaseAddress, in the manual?

Thanks, somehow it went missing.  I will add it in.

I'm not sure about the rest of your suggestion.  Writing CSubs is a complex subject and not of interest to the typical user.  So, it needs a separate and comprehensive manual/tutorial.  This is a big subject which will require someone with a deep knowledge of the subject to write (any volunteers?).

Geoff
Geoff Graham - http://geoffg.net
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 04:45am 18 Dec 2025
Copy link to clipboard 
Print this post

  toml_12953 said  The TAB function doesn't work the way the manual states.

This sounds like a bug.  Peter?

Geoff
Geoff Graham - http://geoffg.net
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1649
Posted: 05:36am 18 Dec 2025
Copy link to clipboard 
Print this post

CSUBs

To quote Sgt. Shultz "I know nothing". But after having success with Claude writing the code for a Micromite CFunction I thought I would ask Claude if it could write a document about writing CSUBs for MMBasic on the Picomite.

Writing_CSUBs_for_MMBasic_PicoMite.zip

And here it is. Maybe it will be useful for someone in the know as a starting point at least.

Bill
Keep safe. Live long and prosper.
 
BarryH

Newbie

Joined: 05/01/2025
Location: Australia
Posts: 25
Posted: 05:44am 18 Dec 2025
Copy link to clipboard 
Print this post

page 174 - SUB ... END SUB

2 paragraphs are duplicated

"Arguments in the callers list..."
"Arrays are passed by..."
BarryH
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025