Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 00:38 27 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: back to betas

     Page 1 of 7    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 02:36pm 30 Nov 2023
Copy link to clipboard 
Print this post

I've been making some large scale changes to the internals of the PicoMite code so I'm sure there will be some cut-and-paste errors. Given this and the quantity of changes since 5.07.07 I've decided to re-designate this version as V5.08.00

V5.08.08b0

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

Likely problems are in:
LONGSTRING command and functions
PIO
MATH command and functions
AUDIO
GRAPHICS commands

Core MMBasic functionality shouldn't be affected (fingers crossed)

In addition this version includes the complex number support (see here )

The VS1053 audio support now includes PLAY TONE and PLAY SOUND. NB: in the latter case individual sound volumes are ignored but the overall volume can be adjusted with PLAY VOLUME
Note, in general, VS1053 sound works better at 252MHz as the SPI transfer to the codec only runs at 5MHz so takes a big chunk of processor time. I haven't limited the speed but you may hear audio corruption particularly with PLAY SOUND and PLAY WAV at slower speeds

Other:
I've special cased the backlight PWM frequency for the ILI9488W display back down to 1KHz
MOD playback now runs at 48KHz to improve filter compatibility
I've limited the VGA version to 252MHz. Testing has shown memory contention between  the two cores at 378MHz can result in strange errors that are not present at slower speeds


Request to all
Please, please run as many of your existing programs as possible on this new version and post on this thread any issues found. Hopefully, once bugs are fixed we can move quickly through release candidate to full release with this version

Updated files now on github

Gerry, The changes to LONGSTRING and MATH code should save you a bunch of space for the ArmmiteF4

Edited 2023-12-01 00:39 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 03:32pm 30 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter,

In the logic analyzer (LA_24.bas) there is an error....
[495] Memory unpack packed%(),Peek(varaddr unpacked%(endsamples%)),beginsamples%,32
Error : Variable name


LA_24.zip


The PETSCII game runs (see no problems yet).

Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 03:58pm 30 Nov 2023
Copy link to clipboard 
Print this post

  Quote  In the logic analyzer (LA_24.bas) there is an error....



Thanks - cut and paste error MEMORY UNPACK, fixed and tested, will post new beta after a few more responses
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 05:31pm 30 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter,
Works with a modified version of PetRobots, which extensively used LONGSTRING setbyte, lgetbyte and other LONGSTRING functions, One MATH problem:-
[444] Math Insert s(),,j,t():r=j
Error : Argument count
in this program:-

2multiclock480x320.BAS.zip

All other programs I've tried seem to be fine, very slightly slower, but not noticeably so.
Regards, Kevin.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 05:44pm 30 Nov 2023
Copy link to clipboard 
Print this post

Kevin, thanks, another one found and fixed. What is the program supposed to do? I just get bright and dim green dots cascading down the screen
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 05:52pm 30 Nov 2023
Copy link to clipboard 
Print this post

That's it, it's supposed to look a bit like the Matrix code rain, or digital rain. :-)
Otherwise everything else in there is a form of clock.
Edited 2023-12-01 03:54 by Bleep
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 06:01pm 30 Nov 2023
Copy link to clipboard 
Print this post

I've fixed those two bugs and updated the download - no version change
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 07:00pm 30 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter,

It seems single line IF .. THEN causes a problem. The THEN is not seen.

circle_one.zip

Run the program, it errors in line 41....

[41] If Asc(a$)=131 Then p1=1
Error : IF without THEN



'read keyboard
   a$=inkey$
   If Asc(a$)=131 Then p1=1
   If Asc(a$)=130 Then p1=2
   If Asc(a$)=128 Then p1=8
   If Asc(a$)=129 Then p1=4
   


Volhout
Edited 2023-12-01 05:04 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 07:06pm 30 Nov 2023
Copy link to clipboard 
Print this post

  Quote  Run the program, it errors in line 41....

Not for me. When did you see the error? Nothing should have changed in that processing as I haven't touched it. Also, I can't believe Petscii would work with that sort of bug in there
Edited 2023-12-01 05:09 by matherp
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6098
Posted: 07:40pm 30 Nov 2023
Copy link to clipboard 
Print this post

Standard picomite
 adc1(1) = 1111 : adc2(1) = 2222
 ADC OPEN captureFreq, 1 ,ADCComplete ' picomite
 ADC RUN ADC1(), ADC2()
 PAUSE 2000
 FOR n = 0 TO 20
 PRINT adc1(n),adc2(n)
 NEXT n


ADC RUN doesn't run
the dummy values I put in the arrays are still there long after a ADC cycle should be completed.

ADC OPEN seems to do as it should and the ADCcomplete sub is run once immediately with the dummy data I had inserted.

Jim
VK7JH
MMedit   MMBasic Help
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 07:43pm 30 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter,

I have re-programmed the pico for below issue, and confirm the IF-THEN single line problem does not show now. I have no idea what happened.

I hope this one is real..

[123] For j=0 To offsets(piece(i))-1
Error : Stack overflow, expression too complex at depth 9


It is the chess program, that caused issues before. I just confirmed it runs fine on the 5.07.07 official release.
Start the program and as first move, type "auto". It will start playing itself.
When it is finished with the opening moves from the book.txt and has to think for itself, it will give above error message.

picochess3.zip

Volhout
Edited 2023-12-01 05:44 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 08:06pm 30 Nov 2023
Copy link to clipboard 
Print this post

  Quote  ADC RUN doesn't run


Thanks Jim, found and fixed. I'll update the downloads tomorrow. Would also impact ADS START

  Quote  I hope this one is real..


Which version? Almost certainly real, its just that the stack space is whatever is left after the compiler allocates RAM. It has probably gone down depending on the version. Unfortunately, the only solution to this is to have less memory resident functions (runs slower) or a smaller program space (determined by the MMBasic heap available)
Edited 2023-12-01 06:07 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 08:23pm 30 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter,

The chess program runs on version V5.07.07 (the last official release)
It gives the error message on 50800beta.
Does that answer the question on "what version" ?
I can follow your reasoning...

Maybe this is related to the ADC start. My mains monitor program (I tested it with a print statement) passes the ADC START a(), but does not complete the SETPIN gp8,fin

'open the ADC and start first conversion, from here on the ADC is
'restarted in the interrupt routine.
adcRange=3.3
ADC open freq,1,INT_RDY
ready=0:pingpong=1
ADC start a()

'connect zero crossing detector to GP8
SetPin gp8,fin              'use build in frequency measurment
Pause 1000                  'skip 1 measurement period
dummy=Pin(gp8)              'make sure there is a value


But it also does not throw an error. It is held.

rms012.zip

For the rest my programs seem to work.

Regards,

Volhout
Edited 2023-12-01 06:24 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 10:43pm 30 Nov 2023
Copy link to clipboard 
Print this post

  Quote  Does that answer the question on "what version" ?


No: PicoMite, VGA, or WEB? or any combination?
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 11:20pm 30 Nov 2023
Copy link to clipboard 
Print this post

The function LGETSTR$ returns error as below.

> longstring Append src%(),"hello World"
>
> ? Lgetstr$(src%(),2,4)
Error : Variable name

Also MATH(M_DETERMINANT gives error.
? Math(M_DETERMINANT a!())
Error : Argument 1 must be a 1D floating point array

MATH INSERT fails if OPTION BASE 1 is set, OK for BASE 0 on the same test.
test_insert:
[1547] Math Insert a!(), BASE%, ,sin_amp2!()
Error : Size mismatch between insert and target array

Also, but not as a result of this change.

MATH(ATAN3 ,x,y) does not respect OPTION ANGLE in the Picomites or MMX.
The CMM2 code seems to and all the manuals say it should.
I have made it work for the F4 and H7.

Gerry
Edited 2023-12-01 10:14 by disco4now
Latest F4 Latest H7
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 06:26am 01 Dec 2023
Copy link to clipboard 
Print this post

Hi Peter,

The chess stack problem is on VGA.

Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 10:21am 01 Dec 2023
Copy link to clipboard 
Print this post

Need more files to run chess. Piece images?

Think I've fixed all the issues reported above. Once I've looked at chess a bit more (may be insolvable, as a limitation not a bug). I'll post b1
Edited 2023-12-01 20:22 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 10:27am 01 Dec 2023
Copy link to clipboard 
Print this post

  disco4now said  The function LGETSTR$ returns error as below ...


LOL, these are the errors reported from my test-suite. Gerry do you have my transpiler running or did you manually #INCLUDE everything, or something else ?

Here's another one that used to work but doesn't now:
> Dim i%
> For i% = 1 To 15 : Read Save : Next
Error : Too many saves


Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9117
Posted: 10:32am 01 Dec 2023
Copy link to clipboard 
Print this post

  Quote  Here's another one that used to work but doesn't now:


I've reduced the number of nested saves to 8 to save memory
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4235
Posted: 11:09am 01 Dec 2023
Copy link to clipboard 
Print this post

Hi Peter,

Here is a complete set.

Small_Col.zip

I have another issue. One that you may be able to reproduce simple.

- run PETSCII ROBOTS
- stop with control-C
- load the chess program
- run the chess program

The screen will be magenta background. This indicates that framebuffer L (magenta transparancy in PETSCII) is partly reset at a new run (the new transparanccy color set to 0, but the buffer still filled with magenta), and it is still active.
I would expect that RUN clears all framebuffers, and even switches off L default.

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 1 of 7    
Print this page
© JAQ Software 2024