Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : MMBasic V6.03.00 release candidates

   Page 7 of 26    
Posted: 12:29pm
13 May 2026
Copy link to clipboard
Bleep
Guru


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
 
Posted: 04:36pm
13 May 2026
Copy link to clipboard
Frank N. Furter
Guru

...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
 
Posted: 04:49pm
13 May 2026
Copy link to clipboard
matherp
Guru

Can't do anything until the weekend so revert to an older version of necessary.
 
Posted: 04:51pm
13 May 2026
Copy link to clipboard
Frank N. Furter
Guru

  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
 
Posted: 07:42pm
13 May 2026
Copy link to clipboard
Frank N. Furter
Guru

  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
 
Posted: 04:15am
14 May 2026
Copy link to clipboard
toml_12953
Guru

  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
 
Posted: 07:11am
14 May 2026
Copy link to clipboard
karlelch
Guru


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
 
Posted: 07:31am
14 May 2026
Copy link to clipboard
Mixtel90
Guru


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.
 
Posted: 07:53am
14 May 2026
Copy link to clipboard
matherp
Guru

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.
 
Posted: 09:05am
14 May 2026
Copy link to clipboard
ville56
Guru

@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
 
Posted: 10:45am
14 May 2026
Copy link to clipboard
ville56
Guru

@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
 
Posted: 04:44pm
15 May 2026
Copy link to clipboard
Volhout
Guru

@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
 
Posted: 04:50pm
15 May 2026
Copy link to clipboard
ville56
Guru

@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
 
Posted: 05:57pm
15 May 2026
Copy link to clipboard
matherp
Guru

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
 
Posted: 06:48pm
15 May 2026
Copy link to clipboard
Frank N. Furter
Guru

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
 
Posted: 07:05pm
15 May 2026
Copy link to clipboard
ville56
Guru

  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
 
Posted: 08:20pm
15 May 2026
Copy link to clipboard
terekgabor
Senior Member

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
 
Posted: 02:56am
16 May 2026
Copy link to clipboard
toml_12953
Guru

  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
 
Posted: 03:40am
16 May 2026
Copy link to clipboard
TassyJim
Guru


  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
 
Posted: 01:10pm
16 May 2026
Copy link to clipboard
ville56
Guru

@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
 
   Page 7 of 26    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026