Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 19:43 30 Sep 2022 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/PicoMiteVGA V5.07.05 release candidates

     Page 1 of 3    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 05:01pm 20 Sep 2022
Copy link to clipboard 
Print this post

V5.07.05RC1

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

OPTION LIST now shows version number and which firmware
Fixes issue where connecting a USB CDC cable would cause the VGA version to Hardfault
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 674
Posted: 01:16am 21 Sep 2022
Copy link to clipboard 
Print this post

Thanks very much for the enhancements.
VGA version does indeed return with everything intact after a Windows power off and reboot while USB is connected.
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 635
Posted: 06:27am 21 Sep 2022
Copy link to clipboard 
Print this post

I think the PicoCFunctions.h is missing the update for uSec(a) macro.
Should be (unsigned long long)
The PicoCFunctions.h file on github is an old one so has not been uploaded for a while.



//#define uSec(a)              ((void (*)(unsigned int )) Vector_uSec) (a)
#define uSec(a)                ((void (*)(unsigned long long )) Vector_uSec) (a)

 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 171
Posted: 06:46am 21 Sep 2022
Copy link to clipboard 
Print this post

@matherp
While you are there:
I believe you are now using v1.4 of the pico-sdk.
Your (additional modified) sdk spi.h no longer exists but still referenced.
Perhaps a reference to the version of gcc you are using.
and:
PicoMite-VGA-Edition has early version reference PicoMiteVGA V5.07.05b8
led
Edited 2022-09-21 16:48 by led-bloon
Miss you George
 
andreas

Regular Member

Joined: 07/12/2020
Location: Germany
Posts: 95
Posted: 04:35pm 21 Sep 2022
Copy link to clipboard 
Print this post

  matherp said  V5.07.05RC1

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

OPTION LIST now shows version number and which firmware
Fixes issue where connecting a USB CDC cable would cause the VGA version to Hardfault


Works well on the other side of mother earth  



I like the 80 x 40 char resolution within EDIT

-andreas
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 09:54am 24 Sep 2022
Copy link to clipboard 
Print this post

V5.07.05RC2

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

MM.INFO(PINNO n) now accepts a string literal, a string variable or an unquoted GPn designation



Edited 2022-09-24 19:56 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 03:54pm 24 Sep 2022
Copy link to clipboard 
Print this post

Hello Peter,

A few more bugs for the pot:

1. MM.INFO(PINNO ...) is now broken - worked prior to RC2:
PicoMiteVGA MMBasic Version 5.07.05RC2
Copyright 2011-2022 Geoff Graham
Copyright 2016-2022 Peter Mather

> list "mminfo_error.bas"
Option Default None
Option Explicit On
Print MM.Info(PinNo GP28)
> run "mminfo_error.bas"
[3] Print MM.Info(PinNo GP28)
Error : GP28 is not declared


2. Error message contains wrong/invalid "pipe" character:
PicoMiteVGA MMBasic Version 5.07.05RC2
Copyright 2011-2022 Geoff Graham
Copyright 2016-2022 Peter Mather

> Pulse Gp2, 100
Error : Pin | is not an output


3. Do you mean for the default to be OPTION KEYBOARD US ... I don't mind, it's just not what I was expecting .

Best wishes,

Tom
CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 04:56pm 24 Sep 2022
Copy link to clipboard 
Print this post

V5.07.05RC3

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

Improved error messaging for incorrect pin usage.
Fixed MM.INFO(pinno when OPTION EXPLICIT specified.
Geoff asked for the keyboard default as both the antipodeans and US use it
Edited 2022-09-25 03:04 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 1649
Posted: 06:07pm 24 Sep 2022
Copy link to clipboard 
Print this post

Dear Peter,

I am sure this is not the opportune moment to ask, but how difficult is it to add JPG save and load to SD card, alternative to BMP ? Is it RAM memory ?
The 24bit BMP files are huge, and especially if you are using only 8 or 16 colors the JPG's should be significantly smaller.

Volhout
If nothing goes right ... turn left
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 06:45pm 24 Sep 2022
Copy link to clipboard 
Print this post

  Quote  but how difficult is it to add JPG save and load to SD card


Non-starter. The library I'm using is decode only
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 06:45pm 24 Sep 2022
Copy link to clipboard 
Print this post

  Volhout said  I am sure this is not the opportune moment to ask, but how difficult is it to add JPG save and load to SD card, alternative to BMP ? Is it RAM memory ?
The 24bit BMP files are huge, and especially if you are using only 8 or 16 colors the JPG's should be significantly smaller.


I'm not sure how large the JPEG compression and decompression algorithms are but I suspect they are non-trivial and the room they would take up in the firmware could be better spent on something more generally useful. This sounds like a definite candidate for a CSUB and not firmware. YMMV.

Best wishes,

Tom
CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 1649
Posted: 07:32pm 24 Sep 2022
Copy link to clipboard 
Print this post

Hi Tom,

I just realize when I made a coding error, and saved 1 BMP per 3 seconds for hours until I realized my coding error.

Then I wanted to delete the files from the SD card, and was unable to use wildcards in the KILL command, such as KILL "*.BMP". Maybe not implemented, or there where so many files on the card the pico could not cope with it.

Had to take the card out to delete the sea of BMP....

Anyway, testing code again and will check if I get a image save now every 4 hours...
Edited 2022-09-25 05:35 by Volhout
If nothing goes right ... turn left
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 11:58am 25 Sep 2022
Copy link to clipboard 
Print this post

  matherp said  V5.07.05RC3

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

Improved error messaging for incorrect pin usage.
Fixed MM.INFO(pinno when OPTION EXPLICIT specified.
Geoff asked for the keyboard default as both the antipodeans and US use it


Thankyou Peter, that works. I didn't know that about our Antipodean cousins and their keyboards

Could you take a look at this issue using TEXT and CHR$(255) for me please:



Also an observation that I'm not sure what to make of, but might lead you to identifying a bug, try this on the CMM2, PicoMiteVGA (use Mode 2, not Mode 7) and MMB4W:

Mode 7:For i=1 To 10:Text i*Mm.Info(FontWidth),"A","CT",1,1:Next


- For the CMM2 and PicoMiteVGA the characters start at the 2nd horizontal pixel position and each overlaps the previous by 1-pixel.
- For MMB4W the characters start at the 3rd/4th horizontal pixel position and do not overlap.

Best wishes,

Tom
Edited 2022-09-25 22:42 by thwill
CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 12:58pm 25 Sep 2022
Copy link to clipboard 
Print this post

This is the code for the text issue - something Geoff has put in the MM+ and I've just copied
   while(*str) {
       if(*str == 0xff) {
//            fc = rgb(0, 0, 255);                                // this is specially for GUI FORMATBOX
           str++;
           GUIPrintChar(fnt, bc, fc, *str++, jo);
       } else
           GUIPrintChar(fnt, fc, bc, *str++, jo);
   }


Mode 7:For i=1 To 10:Text i*Mm.Info(FontWidth),"A","CT",1,1:Next


This is missing the Y coordinate
Edited 2022-09-25 23:01 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 01:24pm 25 Sep 2022
Copy link to clipboard 
Print this post

  matherp said  This is the code for the text issue - something Geoff has put in the MM+ and I've just copied
   while(*str) {
       if(*str == 0xff) {
//            fc = rgb(0, 0, 255);                                // this is specially for GUI FORMATBOX
           str++;
           GUIPrintChar(fnt, bc, fc, *str++, jo);
       } else
           GUIPrintChar(fnt, fc, bc, *str++, jo);
   }



Right, so there is a "hack" for character 255 in the 'mite code which is why it doesn't behave - I don't suppose @Geoff will notice and comment. Looking at the MMB4W code that hack does not exist there (Draw.cpp#748-749) which is why it worked when I originally developed the code in question (on MMB4W).

  matherp said  
Mode 7:For i=1 To 10:Text i*Mm.Info(FontWidth),"A","CT",1,1:Next


This is missing the Y coordinate


Transcription error, what I meant was:

Mode 7:For i=1 To 10:Text i*Mm.Info(FontWidth),100,"A","CT",1,1:Next


Best wishes,

Tom
CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 01:31pm 25 Sep 2022
Copy link to clipboard 
Print this post

The issue is that you are outputting in a different font than is used by MM.INFO(FONTWIDTH)
Remember MMbasic parses the code left to right so it gets the fontwidth before you specify the font in the TEXT command.
To do what you want use the font command before the for statement
The exact result will depend on the relationship of the width of the original font and the one specified in the text command
I've emailed Geoff to ask about the other issue. There is a hole in the code as-is because if 255 is the last char then the code can loop past the end of the string
Edited 2022-09-25 23:44 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 01:47pm 25 Sep 2022
Copy link to clipboard 
Print this post

  matherp said  The issue is that you are outputting in a different font than is used by MM.INFO(FONTWIDTH)
Remember MMbasic parses the code left to right so it gets the fontwidth before you specify the font in the TEXT command.
To do what you want use the font command before the for statement


Right, stupid of me. There is no way to get the width of a font without first issuing a FONT command is there ? - don't add one if there isn't, I'd only ask for it on evey MMBasic flavour.

  matherp said  I've emailed Geoff to ask about the other issue. There is a hole in the code as-is because if 255 is the last char then the code can loop past the end of the string


Good point.

Note that after having done some googling you could, and perhaps should argue that character 255 is the "non-breaking space" character and shouldn't have had a glyph assigned to it by the MMBasic font in the first place.

Best wishes,

Tom
Edited 2022-09-25 23:49 by thwill
CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 01:54pm 25 Sep 2022
Copy link to clipboard 
Print this post

  Quote  There is no way to get the width of a font without first issuing a FONT command is there ? - don't add one if there isn't, I'd only ask for it on evey MMBasic flavour.


width of font n
? peek(byte mm.info(font address n))

height of font n
? peek(byte mm.info(font address n)+1)
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 2732
Posted: 02:05pm 25 Sep 2022
Copy link to clipboard 
Print this post

  matherp said  width of font n
? peek(byte mm.info(font address n))

height of font n
? peek(byte mm.info(font address n)+1)


Right, thanks. One more follow-up, isn't FONT 1 the default font for MODE 7 (MMB4W and CMM2) and MODE 2 (PicoMiteVGA), in which case wasn't I accidentally using the correct width (8) for the font used by the TEXT command ?

Best wishes,

Tom
Edited 2022-09-26 00:09 by thwill
CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 6491
Posted: 03:06pm 25 Sep 2022
Copy link to clipboard 
Print this post

The default font after switching to mode 2 in a program is 7 (8x6).
HOWEVER when you go back to the command line the system automatically defaults to the "default font" as set by OPTION DEFAULT MODE (1 or 7) unless overridden by OPTION LCDPANEL CONSOLE font.

So, if you go "MODE 2:?MM.FONTHEIGHT" you will get 8.
However, if you do this as two lines you will get whatever has been set in the the most recent of OPTION DEFAULT MODE or OPTION LCDPANEL command

The idea of this is so you can set the font for the command prompt and either operate with a small font in mode 2 if you wish (gives colour editing), or use a bigger font as the default in mode 1 to help with accessibility issues

OPTION DEFAULT MODE 2 ' defaults command line font to 7
OPTION LCDPANEL CONSOLE 8 'make it really small (6x4)
OPTION COLOURCODE ON

Mode 2, font 8, 80 chars wide



I know this is somewhat odd/difficult but it is what it is

Missing from the VGA manual

OPTION DEFAULT MODE n (NB permanent option)
N can be 1 or 2. This sets the default display mode on boot. Setting the mode to 1 will give a 640x480 monochrome display and the default font will be set to 1 (12x8). Setting n to 2 will give a 320x240 colour display and the default font will be set to 7 (8x6)

OPTION LCDPANEL CONSOLE [ fnt] [, foreground] [, background] (NB permanent option)
Turns on console output to the VGA screen and optionally set the default font and the foreground and background colours

OPTION LCDPANEL NOCONSOLE (NB tick in manual should be in square brackets)

If used in a program this is a temporary option (useful for debugging with a USB/serial console) and disables PRINT output to the VGA display. Graphics commands will continue to work.
If used at the command prompt this option is permanent, both print output and console output will be disabled and only graphics commands will output to the VGA screen
Edited 2022-09-26 01:38 by matherp
 
     Page 1 of 3    
Print this page
© JAQ Software 2022