Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 21:49 26 Nov 2024 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/VGA/Web V5.08.00: Release candidates

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9115
Posted: 09:57am 15 Jan 2024
Copy link to clipboard 
Print this post

V5.08.00RC3

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

Minor enhancements and definitely no more

VGA mode 1 now supports automatically merging the layer buffer when CPU speed is set to 252MHz.

MATH C_AND, MATH C_OR, MATH C_XOR


As per MATH C_ADD etc.

MATH C_AND in1array(), in2array(), outarray()

the arrays can be all the same or any combination but must have the same cardinality


MATH V_ROTATE

MATH V_ROTATE X_CENTRE, Y_CENTRE, ANGLE, x_in(), y_in(), x_out(), y_out()

rotates the coordinates in the x and y in arrays around the centre point specified by x_centre and y_centre by the angle specified. The angle respects OPTION ANGLE. x_in and x_out can be the same as can y_in and y_out.

LINE GRAPH

LINE GRAPH x(), y(), colour

Plots as a line graph the coordinates in the x and y arrays

example code for the above

FRAMEBUFFER create
FRAMEBUFFER write f
Option angle degrees
CLS
Dim x(2)=(100,200,100),y(2)=(100,200,200)
Line x(0),y(0),x(1),y(1)
Line x(1),y(1),x(2),y(2)
Line x(2),y(2),x(0),y(0)
Do
Math v_rotate 150,150,5,x(),y(),x(),y()
CLS
'Polygon 3,x(),y(),RGB(red)
Line graph x(),y(),RGB(red)
FRAMEBUFFER copy f,n
Loop


Note the difference between using the POLYGON command (closed shape) and the LINE GRAPH command


 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 10:44am 15 Jan 2024
Copy link to clipboard 
Print this post

Hi Peter,
Does this version have the option to use VGA at 378MHz permanently removed? (unfortunately I can't test it as I've only currently got an old RaspberryPi for internet, which can't for some reason, download your Beta builds.) otherwise I'd test it to see. :-(
Personally I would still like to have the option, even if it might cause problems under some circumstances.
Thanks for all your hard work.
Regards, Kevin.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4234
Posted: 11:20am 15 Jan 2024
Copy link to clipboard 
Print this post

Works nice Peter !!

I guess you can use this to run "Rocks in Space" completely in math, no sprites needed anymore.
I can also use LINE GRAPH and MATH AND to speed up the graphical output of the logic analyzer (although that has been improved by 50% recently in LA_24_1).

Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4234
Posted: 12:02pm 15 Jan 2024
Copy link to clipboard 
Print this post

Hi Peter,

A question about colors, transparency and SPRITE MOVE in picomite VGA (V50800RC3, but also earlier).

Assume I have a sprite that has been designed to have MAGENTA as transparent color.
That sprite is created in the CMM1 compatible color map. MAGENTA = color 5

I create a framebuffer layer for this sprite with transparency MAGENTA.

FRAMEBUFFER LAYER 9 (9 is the transparency color number for magenta).

When I move this sprite over layer L, the magenta color is not transparent anymore, but is converted to some form of green. Or is it taking the transparent color from layer N (under it).
Is it possible SPRITE MOVE uses the wrong color definition ?

Or that I am just confused.... (likely option   )..

Regards,

Volhout
Edited 2024-01-15 22:34 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9115
Posted: 01:01pm 15 Jan 2024
Copy link to clipboard 
Print this post

True sprites only support black as transparent
 
barewires
Newbie

Joined: 13/04/2015
Location: United Kingdom
Posts: 30
Posted: 02:42pm 15 Jan 2024
Copy link to clipboard 
Print this post

The keep-alive LED does not function in this version. (Webmite)
Edited 2024-01-16 01:06 by barewires
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9115
Posted: 02:55pm 15 Jan 2024
Copy link to clipboard 
Print this post

  Quote  The keep-alive LED does not function in this version.


Yes it does. Try OPTION RESET
 
barewires
Newbie

Joined: 13/04/2015
Location: United Kingdom
Posts: 30
Posted: 03:21pm 15 Jan 2024
Copy link to clipboard 
Print this post

No it didn't but then set wifi and ntp.

15:18:48        15-01-2024
MM.Ver   5.08   MM.Device$      WebMite
MM.Info(version)         5.08
MM.Info(SYSTEM HEAP)     15360
MM.Info(FLASH)   0
MM.Info(VERSION)         5.08
MM.Info(ID),MM.Info(IP ADDRESS) E66164*****     192.168.1.14
MM.Info(TCPIP STATUS)    3
MM.Info(WIFI STATUS)     1
MM.Info(BOOT COUNT)      9
MM.Info(CPUSPEED)       133000000
MM.Info(CURRENT)        NONE
 
LeoNicolas

Guru

Joined: 07/10/2020
Location: Canada
Posts: 479
Posted: 03:28pm 15 Jan 2024
Copy link to clipboard 
Print this post

Peter, will these updates be migrated to the other MMBasic versions?
 
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 172
Posted: 08:52pm 15 Jan 2024
Copy link to clipboard 
Print this post

Thanks Peter!
Many new features to optimize my robot's code  
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 09:23pm 15 Jan 2024
Copy link to clipboard 
Print this post

  matherp said  True sprites only support black as transparent

First using sprites I plotted them from data then read them and a sprite as the black background didn't work as erase so used box. I don't know what's happening as so many rc updates , it's dynamic.
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 830
Posted: 10:22am 16 Jan 2024
Copy link to clipboard 
Print this post

Hi,

I have two problems. First the more important problem:

My SPO256 emulation (https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=15431#195775) only works a few times. Then I get this error here:

[66] Play WAV "A:\SPO256Phonemes\"+wav$+".wav",IROUTINE
Error : Not enough memory
>

Before that, the program worked endlessly!

This is the current program:
Option Explicit
Dim WAVbusy As INTEGER
Const TRUE=1
Const FALSE=0

Print "Play"

Do
PlayWAV "2Eh"
PlayWAV "0Fh"
PlayWAV "0Bh"
PlayWAV "0Dh"
PlayWAV "1Fh"
PlayWAV "1Dh"
PlayWAV "33h"
PlayWAV "13h"
PlayWAV "28h"
PlayWAV "35h"
PlayWAV "33h"
PlayWAV "28h"
PlayWAV "06h"
PlayWAV "23h"
Pause 1000

PlayWAV "1Bh"
PlayWAV "07h"
PlayWAV "2Dh"
PlayWAV "35h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "0Dh"
PlayWAV "1Fh"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "12h"
PlayWAV "13h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "3Fh"
PlayWAV "1Ah"
PlayWAV "0Dh"
PlayWAV "29h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "25h"
PlayWAV "07h"
PlayWAV "0Dh"
PlayWAV "1Dh"
PlayWAV "03h"
PlayWAV "02h"
Pause 1000
'Loop

'Do
PlayWAV "hh2"
PlayWAV "aa"
PlayWAV "ll"
PlayWAV "ll"
PlayWAV "ow"
Pause 1000
Loop

Sub PlayWAV wav$
WAVbusy=TRUE
'Play WAV "B:\SPO256Phonemes\"+wav$+".wav",IROUTINE
Play WAV "A:\SPO256Phonemes\"+wav$+".wav",IROUTINE
Do
Loop While Wavbusy=TRUE
End Sub

Sub IROUTINE
WAVbusy=FALSE
End Sub

(The corresponding WAVs are in the link above...)

It doesn't matter whether I play the WAV from the internal drive or from the SD card.


My second problem concerns the color display with Terra Term.

I have inverted the color scheme because I can read better on the light background.



So far this has not been a problem. In the editor, the font (instead of black) was ONLY displayed in a more illegible light gray with OPTION COLORCODE ON.
With OPTION COLORCODE OFF, or when you left the editor, the font was crisp black again.
Now, however, it is illegible light gray even with COLORCODE switched off and after exiting the editor.

However, when restarting (before calling the editor), the font is black...

This is what it looks like in the editor:

This is what it looks like after leaving the editor:


The WAV problem and the editor problem already existed with PicoMite_Beta V5.08.00b5, but I only noticed it in the last few days.

With PicoMite MMBasic version 5.07.06b9 I had at least no problems...


Oh yes, I use a RP2040 Geek with the following options:
> Option List
PicoMite MMBasic Version 5.08.00RC3
OPTION SYSTEM SPI GP10,GP11,GP28
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION HEARTBEAT OFF
OPTION PICO OFF
OPTION LCDPANEL ST7789_135, LANDSCAPE,GP8,GP12,GP9,GP25
OPTION SDCARD GP23, GP18, GP19, GP20
OPTION AUDIO GP2,GP3', ON PWM CHANNEL 1
>


Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9115
Posted: 07:52pm 16 Jan 2024
Copy link to clipboard 
Print this post

V5.08.00RC4

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

Fixes the couple of bugs found by Frank

Adds a new game orientated feature to the VGA version

FRAMEBUFFER OFFSET x, y [,b]


This command changes the VGA output so it offsets reading the framebuffer vertically by subtracting y from the line and each line horizontally by adding x. The optional parameter B waits for frame blanking before making the change.
Note: this command does not change the contents of the framebuffer, just the way it is read out of the buffer.
The command is only available when OPTION CPUSPEED 252000 is set.

FRAMEBUFFER OFFSET 16,16 will move the image 16 lines down the screen and 16 pixels to the right with lines at the bottom wrapping to the top and pixels at the right wrapping to the left.

The shifts in the y direction can be any number between 0 and MM.VRES-1
The shift in the x direction must be between 0 and MM.HRES - xmod and be a multiple of xmod which is 16 for mode 1 and 2 for mode 2

Example code as shown in the Demo

MODE 2
Load image "b:/julia2"
Do
 For y=0 To 238 Step 2
   x=y*4/3
   If x Mod 2 Then Inc x
   FRAMEBUFFER offset x,y,b
 Next
Loop

 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4234
Posted: 09:56pm 16 Jan 2024
Copy link to clipboard 
Print this post

In flappy bird I use SPRITE SCROLL to achieve the same.
With framebuffer write N it scrolls N, with framebuffer write L it scrolls L
Can scroll negative and positive directions.
Maybe I abuse the command, but it works.

Volhout
Edited 2024-01-17 16:28 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 830
Posted: 08:34am 17 Jan 2024
Copy link to clipboard 
Print this post

@matherp:

Peter, thank you very much!
Even after half an hour, everything is still working as it should!
The editor problem has also been solved!
   

Frank
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 830
Posted: 01:17pm 17 Jan 2024
Copy link to clipboard 
Print this post

New problem found...

It looks as if the default setting for the backlight is not applied after a restart:

BACKLIGHT n [,DEFAULT]
BACKLIGHT 2,2

The backlight setting works, but is back to maximum after a restart...

(tested on a RP2040 Geek and OPTION LCDPANEL ST7789_135, LANDSCAPE,GP8,GP12,GP9,GP25)

Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9115
Posted: 01:22pm 17 Jan 2024
Copy link to clipboard 
Print this post

Use the word "default" as per your quote, anything else is ignored
Edited 2024-01-17 23:23 by matherp
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 830
Posted: 05:40pm 17 Jan 2024
Copy link to clipboard 
Print this post

Ok, thank you very much - I had misunderstood...

Frank
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 144
Posted: 10:12pm 17 Jan 2024
Copy link to clipboard 
Print this post

Is it true that the function DIR$(fspec) only returns a random name?
example: ? DIR$("P*.*") only returns a random file name starting with p, while there are several starting with p.

And thanks for fixing the colors in v5.08.00RC4 in the editor so I can use my old colors again.

Jan
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2135
Posted: 10:53pm 17 Jan 2024
Copy link to clipboard 
Print this post

Print DIR$(fspec)
Returns the first item that matches "fspec". to get the next item follow with:-
Print DIR$()
and so on.

To list all at once use FILES fspec$ (posibly command line only)

See page 143 of the draft manual.
  Quote  This example will print all the files in a directory:
  f$ = DIR$("*.*", FILE)
    DO WHILE f$ <> ""
    PRINT f$
    f$ = DIR$()
  LOOP
You must change to the required directory before invoking this command.

Edited 2024-01-18 09:00 by phil99
 
     Page 1 of 2    
Print this page
© JAQ Software 2024