Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:42 23 May 2026 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 : MMBasic V6.03.00 release candidates

     Page 7 of 10    
Author Message
Bleep

Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 795
Posted: 12:29pm 13 May 2026
Copy link to clipboard 
Print this post

Hi Peter,
I fully realise this isn't much to go on, but incase anyone else reports a problem, I've had 2 occurances of a crash requiring a flash nuke to get out of. This was using B5 on a USB LCD ST7796S.
Each time I was running a version of the Recursive Mandelbrot attached, I saw a brief flash of heap out of memory or similar then a reboot, displaying the first 3 lines of the normal boot up, then "PC=100055EA  LR=100052A9" followed by an immediate reboot, but each subsiquent itteration I only get the "PC=100055EA  LR=100052A9", swiftly followed by a reboot....
I've attached a zip with two versions of Mandelbrot, one standard, one recursive. The recursive is almost twice as fast, I did it just to see if it would be and quicker in Basic. :)
Kevin

mandelbrot.zip
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1098
Posted: 04:36pm 13 May 2026
Copy link to clipboard 
Print this post

...now a new error with the same program. The program is called "demo.bas" and was working perfectly until recently. You can download it here:

https://github.com/guidouil/PicoCalcStuffs

With the latest version, PicoMiteRP2350V6.03.00RC7, the program now crashes with this error:

Error: Cannot find label (F2 line 358)


Line 358 reads:
restore edges

...with
edges:
 data 0,1, 0,2, 0,4, 1,3, 1,5, 2,3
 data 2,6, 3,7, 4,5, 4,6, 5,7, 6,7
in same sub.

In addition, the following will now always be displayed with GFXterm:
B:/> [?7h


Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11352
Posted: 04:49pm 13 May 2026
Copy link to clipboard 
Print this post

Can't do anything until the weekend so revert to an older version of necessary.
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1098
Posted: 04:51pm 13 May 2026
Copy link to clipboard 
Print this post

  toml_12953 said  
  Frank N. Furter said  
  toml_12953 said  Is there any way to change the width of listings on a PicoCalc (40-column LCD display)? I have an 80-column serial printer and it's a waste to have 40-column listings come out. I'd like to leave PRINT as is but be able to change the output of the LIST command only. Maybe even have LLIST and LPRINT commands that print to a serial port rather than the console.


How did you connect the printer to the PicoCalc???

Frank


It's an Oki Microline 184 Turbo serial printer connected to serial port 1 on pins GP0 and GP1 at 19200 baud. I use a TTL to RS-232 converter (about $3.00 USD). I had an Epson receipt printer on there at 115200 baud (you should see the paper fly out of that thing!) but wanted a standard paper printer rather than thermal paper.


Try doing the following - Create a file with the following content:
Font 8
CLS RGB(0,0,0)
and launch the program using the built-in file manager.
That changes the font size to "small" for me. The file manager and any LIST I open also appear in small text.

This program
Font 1
CLS RGB(0,0,0)
undoes everything. It must also be launched from the file manager.
I hope that Peter won't change the way the system works...  

Frank
Edited 2026-05-14 02:53 by Frank N. Furter
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1098
Posted: 07:42pm 13 May 2026
Copy link to clipboard 
Print this post

  matherp said  Can't do anything until the weekend so revert to an older version of necessary.


No problem!!! I just wanted to point that out.

Frank
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 637
Posted: 04:15am 14 May 2026
Copy link to clipboard 
Print this post

  Frank N. Furter said  [

Try doing the following - Create a file with the following content:
Font 8
CLS RGB(0,0,0)
and launch the program using the built-in file manager.
That changes the font size to "small" for me. The file manager and any LIST I open also appear in small text.

This program
Font 1
CLS RGB(0,0,0)
undoes everything. It must also be launched from the file manager.
I hope that Peter won't change the way the system works...  

Frank


Works great. Thanks! I never would've thought of reducing the font size to eliminate the CRLF at 40 columns.

Footnote added 2026-05-14 18:25 by toml_12953
BTW, here's the subroutine I use:

SUB LLIST(fname$)
FONT 8
OPTION console serial
IF fname$="" THEN
 LIST all
ELSE
 LIST all fname$
END IF
PRINT :PRINT :PRINT :PRINT :PRINT
PRINT :PRINT
FONT 1
OPTION console screen
END SUB
 
karlelch

Guru

Joined: 30/10/2014
Location: Germany
Posts: 327
Posted: 07:11am 14 May 2026
Copy link to clipboard 
Print this post

Hi,

I have a question regarding LIST COLLISIONS. For my latest robot program (which uses a library), I get:
> list collisions
LOCAL: none
GLOBAL bucket 10:
 VL53_I2C_CHUNK
 TOF.PROCESSMSK
 R.SENDTELEMETRYV
GLOBAL bucket 29:
 DEBUG_VERBOSE
 J
GLOBAL bucket 47:
 VL53_BUF_SIZE
 TELE_N_CMD_BYTES
GLOBAL bucket 61:
 IS_RUNNING
 R._UPDATEFACEP_N
GLOBAL bucket 63:
 VL53_I2C_FREQ
 VL
GLOBAL bucket 65:
 VL53_I2C_SDA
 USE_REMOTE_KB
GLOBAL bucket 84:
 PIN_DRV_MA_EN
 CMD_STOP
GLOBAL bucket 85:
 VL53_I2C_SCL
 CMD_POWERDOWN
GLOBAL bucket 119:
 SHOW_TOF_DATA
 SELF
GLOBAL bucket 203:
 TOF_SINC_FREQ
 R.SENDTELEMETRYSOUT
GLOBAL bucket 256:
 VL53_FW_PART1_SIZE
 TOF.PROCESSPRAV
GLOBAL bucket 273:
 C_BKG
 TOF_PARAMS
GLOBAL bucket 282:
 VL53_I2C_ADDR
 TOF.PROCESSRAV
GLOBAL bucket 314:
 VEL_TURN
 R._LOGMAXLN
GLOBAL bucket 339:
 PIN_DRV_MA_PH
 VL53.UPDATE_DATAPBH
GLOBAL bucket 353:
 VL53_RES_4X4
 TELE_DATA_OFFS
GLOBAL bucket 370:
 SHOW_SPLASH
 TOF.PROCESSPDST
GLOBAL bucket 393:
 RMP_MAX_STEPS
 PIN_COM2_TX
GLOBAL bucket 420:
 VL53_REG_CMD_STAT
 PIN_BAT
 R._SERVICECALLBACKT_FACE
GLOBAL bucket 472:
 T_START
 TOF.PROCESSPPIX
GLOBAL bucket 499:
 VT_DEL_LEFT
 TOF.PROCESSN_RAV

If I want to reduce collisions, how do I do that? The the manual it says "Use this after a representative run to decide whether OPTION LOCAL VARIABLES n should be retuned, or whether a particular variable should be renamed to break a collision.". With OPTION LOCAL VARIABLES n I can reduce the number of collisions to approx. half, but what can I do with renaming? The variable names are so different, how would I need to rename them?

This is more out of curiosity; my program runs currently fast enough.

Thanks
Thomas
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 8842
Posted: 07:31am 14 May 2026
Copy link to clipboard 
Print this post

Microline 184? Wow... that brings back memories.
My second printer was the OKI Microline 80. I still have it somewhere. I even have the stand to take teletype rolls! I don't think I ever used that though.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11352
Posted: 07:53am 14 May 2026
Copy link to clipboard 
Print this post

Just make any small change to a variable name e.g. add x to the end. Any change will change the hash key. However, if the variable table is nearly full you may then get a different hash collision.
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 490
Posted: 09:05am 14 May 2026
Copy link to clipboard 
Print this post

@Peter,

is there a possibility to change the behaviour of WEB NTP a litte bit?

If if the optional NTP-address parameter is empty
 e.g. ntp_ip = ""
      WEB NTP 1,ntp_ip,1000
it would be great that instead of the error "Error : Failed to find NTP address" it would consider the parameter as missing like in WEB NTP 1,,1000 which works. This would make the choice in a program easier if it switches between a specified NTP and a default one.

thanks,
Gerald
                                                                 
73 de OE1HGA, Gerald
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 490
Posted: 10:45am 14 May 2026
Copy link to clipboard 
Print this post

@Peter,

sorry, but ... once again to the WIFI connect problem with Fritzboxes.

Is it possible to set the mm.errno and mm.errmsg$ variables straight after startup and a failed wifi connect to some value other than 0 and ""?

The reason is that if you specifiy the full
 OPTION WIFI "SSID","passwd","nodename","IP","netmask","gateway","country"
a mm.info(ip address) resolves to the ip address set in the option, regardless if the connect succeeded or not.
If the options specified are just
 OPTION WIFI "SSID","passwd","nodename","country"
mm.info(ip address) resolves either to the ip received via dhcp or "0.0.0.0". In that case it is possible to decide whether the connect failed or not.

In both cases you get an errormessage at the console. So at least the firmware knows that the connect did fail but it is not reported into the mmbasic environment.

Gerald
                                                                 
73 de OE1HGA, Gerald
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5884
Posted: 04:44pm 15 May 2026
Copy link to clipboard 
Print this post

@Peter,

The 2040 mini version has a similar problem as 6.01.02 with PIO. After a cold boot all works, but a second or third run PIO communication via FIFO Goes wrong. As if with RUN not all fifo’s are cleared. I have had a workaround with typing PIO STOP N,m, and PIO CLEAR N on the command line with this particular PIO program. Hard for me to diagnose further.
I noticed this with the quadrature decoder. Running 6.02.01 runs fine (not a mini, I know….).

Any idea?

Volhout
Edited 2026-05-16 02:45 by Volhout
PicomiteVGA PETSCII ROBOTS
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 490
Posted: 04:50pm 15 May 2026
Copy link to clipboard 
Print this post

@Peter,

there is probably a bug in the BIT function:


 '
 OPTION EXPLICIT
 OPTION DEFAULT NONE
 
 dim integer res
 
type test_type
 intgr as integer
end type
 
 dim a as test_type
 
 a.intgr = &b0001
 
 print a.intgr
 bit(a.intgr,1)=1
 print a.intgr
 
 res = bit(a.intgr,0)


in the example above the last statement fails with
[18] res = Bit(a.intgr,0)
Error : Not an integer

Version is:
WebMite MMBasic RP2350A Edition V6.03.00RC7


Gerald
                                                                 
73 de OE1HGA, Gerald
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11352
Posted: 05:57pm 15 May 2026
Copy link to clipboard 
Print this post

Various MMbasic commands are not structure enabled (many math commands). Adding all of these would inflate the image size dramatically for little advantage. The structures manual identifies the commands that are supported. If a command or function is not explicitly mentioned in the manual it probably isn't supported.

Frank
The problem with your program is that the label is indented on the line. This used to be allowed even though the manual says the label must be the first thing on the line but the current RC doesn't allow it any more. I'll look at this but no promises (optimisation restricts flexibility sometimes)
Edited 2026-05-16 04:04 by matherp
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1098
Posted: 06:48pm 15 May 2026
Copy link to clipboard 
Print this post

Peter, thanks for your explanation!
It's always a bit puzzling when a program that was working fine suddenly stops running...

Frank
Edited 2026-05-16 04:48 by Frank N. Furter
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 490
Posted: 07:05pm 15 May 2026
Copy link to clipboard 
Print this post

  Quote  
If a command or function is not explicitly mentioned in the manual it probably isn't supported.


Thanks Peter, didn't see it that way but it's clear now.

Gerald
                                                                 
73 de OE1HGA, Gerald
 
terekgabor
Regular Member

Joined: 02/01/2026
Location: Hungary
Posts: 77
Posted: 08:20pm 15 May 2026
Copy link to clipboard 
Print this post

Hello Peter!

I tested web error handle and it seems it became much better. Now I can handle errors, so I have no slowing down experienced.

Some idea for music playing (for example Flac or Mp3):
Can be good a LOOP option in the Play command. If I play a single file it can start from beginning when ended. If I play a directory start playing first file after the last ended.

And I don’t know if there is a possibility to make PLAY REWIND n /PLAY FORWARD n for example to go forward or backward n seconds in the actually playing file.

G@bor
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 637
Posted: 02:56am 16 May 2026
Copy link to clipboard 
Print this post

  matherp said  
The first . character in the filename is treated as the start of the extension. If there is already an extension defined then .bas isn't added. This won't be changing


If I want to load a program in the directory above the current directory, then

LOAD "..\progname"


doesn't work. I have to do this:

LOAD "..\progname.bas"


The manual should mention that the automatic BAS extension only works for programs in the current directory.
Edited 2026-05-16 12:58 by toml_12953
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6529
Posted: 03:40am 16 May 2026
Copy link to clipboard 
Print this post

  ville56 said  @dddns:

are you on the latest firmware level?


I am running a 7530 AX on V8.2 and a 7490 on whatever the latest is for that ancient device.
Both are firmware versions for Australia not Europe.

With the 7490 and webmite 2040 versions I continually could only connect every second attempt.
With the AP on a different device and the DHCP server on the Fritz, things works correctly so I assumed that the 'problem' is with the WiFI itself and not the DHCP server.

Now with the 7530, and both 2040 and 2350 webmites, I can connect every time.
I haven't found the need to try Peters suggested settings.
I am not sure when the fail every second connect problem went away for me.


I also found that keeping the CPU speed below ~230MHz made the 2040 very reliable. Running for months at a time and only shut down for software changes.


I haven't tested the 7350 for speed reliability yet.

Jim
VK7JH
MMedit
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 490
Posted: 01:10pm 16 May 2026
Copy link to clipboard 
Print this post

@Jim,

thanks for the info. I will try to force a Webmite to connect directly to the Box and not via one of my accesspoints. And yes, I also assume it's not the DHCP as the issue is even when no DHCP (full specification of option wifi) is or should be involved.
Specifying the country code in option wifi didn't change anything in the connect behavior but the connection loss issue seems to be gone now.

There are certainly area specific differences in the WIFI implementation bebause of regulation reasons. But I always assumed that AVM did it particularly right for Germany/Austria as the regulations are very similar. Maybe this strict adherence is the reason. OTOH the ESP32 stack does not show such issues.

Anyway, IMHO if the initial connect error could be trapped in MMBasic, things could be handled easier. Maybe Peter can change this.

Gerald
                                                                 
73 de OE1HGA, Gerald
 
     Page 7 of 10    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026