Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 11:25 08 May 2025 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.03 release candidates

     Page 7 of 9    
Author Message
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7498
Posted: 04:09pm 08 Jan 2022
Copy link to clipboard 
Print this post

Looks like Peter's solved the pin naming issue anyway. :)  Thanks, Peter.

We went through all this at the beginning... <sigh>
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 04:33pm 08 Jan 2022
Copy link to clipboard 
Print this post

  matherp said  Not an issue - I've just included
COM1, COM2 Can be used for asynchronous serial I/O (UART0 and UART1 on the Pico datasheet).
I2C, I2C2 Can be used for I2C communications (I2C0 and I2C1 on the Pico datasheet).
SPI, SPI2 Can be used for SPI I/O (see Appendix D). (SPI0 and SPI1 on the Pico datasheet).


Thanks, I feel a text box or a note to the pinout diagram indicating "Some signal names are different from Raspberry Pi Pico pinout" would ensure the point is not missed.

By the way, did you see these questions from the suggestions topic:
For OPTION RTC AUTO ENABLE what occurs during the hourly sync if error communicating with RTC, whether a program is running or not?

Playing .WAV audio P28 does PLAY WAV abort/terminate or fail silently if file is not present or error reading SD card?
 
dMajo

Newbie

Joined: 18/05/2020
Location: Italy
Posts: 27
Posted: 05:01pm 08 Jan 2022
Copy link to clipboard 
Print this post

On pages [p.num(errors)] 7(1), 9(1), 13(1), 14(1), 35(1), 45(1), 47(2), 48(1) is mistakenly used Micromite or MMPlus instead of PicoMite

P.73: Being the PicoMite the most recent product of the MMBasic line the MM.DEVICE$ table should include also the various ArmMite F4/L4/H7 series

P.103: there is a reference to OPTION ANGLE which is missing in the option's table documentation

P.106: Open fname$ refers to OPTION ERROR which is not documented anywhere.


BTW:
Now that PicoMite executes directly from its QSPI Flash, there is some benefits in using eg one ItsyBitsy RP2040 which have 8MB flash instead of the 2MB on the RaspberryPi's board?
ALLdataEE.com  EDU Promos
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 05:47pm 08 Jan 2022
Copy link to clipboard 
Print this post

  Quote  For OPTION RTC AUTO ENABLE what occurs during the hourly sync if error communicating with RTC, whether a program is running or not?


New text

  Quote  OPTION RTC AUTO ENABLE / DISABLE
Enable auto-load time$ & date$ from RTC on boot & every hour. If enabled and the RTC does not respond then any running program will abort with an error. At the command prompt an information message will be output.


If you don't want this behaviour don't enable and use RTC gettime in a program with an ON ERROR SKIP before it

  Quote  Playing .WAV audio P28 does PLAY WAV abort/terminate or fail silently if file is not present or error reading SD card?


It errors of course

dMajo: Thanks will update the doc

  Quote  there is some benefits in using eg one ItsyBitsy RP2040 which have 8MB flash instead of the 2MB on the RaspberryPi's board?

No: the firmware only supports the first 2Mb of flash

UPDATE

Manual updated in download from Geoff's site
Edited 2022-01-09 20:00 by matherp
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 10:13pm 09 Jan 2022
Copy link to clipboard 
Print this post

  matherp said  
UPDATE

Manual updated in download from Geoff's site


For 5.07.03 manual:

P37 typo: "The PicoMite uses the SPI protocol to talk to the card and this influenced by the card type is"
should be "and this is not influenced by the card type."

Draft manuals should have a revision date to make it easier to avoid reviewing old draft versions.

I think including the exact LCD setup instructions for commonly used displays (like waveshare 2.8 inch touch with sd card) would make it easier for beginners since these modules are basically plug-in (no soldering or jumper wires required).

P43: for https://www.waveshare.com/wiki/Pico-ResTouch-LCD-2.8
OPTION SYSTEM SPI GP10,GP11,GP12
OPTION SDCARD GP22
OPTION LCDPANEL ST7789_320, LANDSCAPE,GP8,GP15,GP9,GP13
OPTION TOUCH GP16,GP17
(above tested by me)

For https://www.waveshare.com/wiki/Pico-ResTouch-LCD-3.5
OPTION SYSTEM SPI GP10,GP11,GP12
OPTION SDCARD GP22, GP5, GP18, GP19
OPTION LCDPANEL ILI9488W, LANDSCAPE,GP8,GP15,GP9,GP13
OPTION TOUCH GP16,GP17
(I have not tested this but this was from some LCD related topic)
Edited 2022-01-10 08:27 by flasherror
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2414
Posted: 12:29pm 10 Jan 2022
Copy link to clipboard 
Print this post

For 5.07.03 manual:

Commands section p98

INC a[, b] missing (between ENDIF and INPUT)

It is in the firmware and shows in
> list commands
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 01:59pm 11 Jan 2022
Copy link to clipboard 
Print this post

V5.07.03RC11


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

Fixes a bug where ADC START stopped VGA output
Fixes a bug where LINE INPUT would not read the last line in a file if it was not terminated with a CR


Manual updated with changes identified above. Will include an appendix with sample option lists at a later date
 
fred777
Regular Member

Joined: 01/07/2021
Location: United Kingdom
Posts: 57
Posted: 03:30pm 11 Jan 2022
Copy link to clipboard 
Print this post

For 5.07.03 manual - number of available Flash Slots still 10 instead of 7:

Page 12 (FLASH RUN n)
FLASH LIST Display a list of the contents of all 10 flash locations.

Page 75 (OPTION AUTORUN n)
'n' must be in the range 1 to 10.
 
fred777
Regular Member

Joined: 01/07/2021
Location: United Kingdom
Posts: 57
Posted: 04:11pm 11 Jan 2022
Copy link to clipboard 
Print this post

Would it be possible to add some options to the PS/2 Keyboard support?

OPTION KEYBOARD REPEAT firstchar, nextchar (like in CMM2)

and an option to disable the NUM lock at startup would be great, with TKL keyboards (Ten Key Less) enabling NUM Lock makes the Keyboard simulate the number pad on the normal keys

Alternatively, is there a way to bitbang commands to the keyboard?
 
mobluse

Newbie

Joined: 10/02/2013
Location: Sweden
Posts: 24
Posted: 05:00pm 11 Jan 2022
Copy link to clipboard 
Print this post

I just discovered that MMBasic has a different precedence for the NOT operator than GW-BASIC and VBA. In MMBasic the precedence of NOT is higher than the relational operators (e.g. <, >, =), but in most other BASICs it is lower. This makes it more difficult to translate BASIC programs to MMBasic. I understand that NOT is not bitwise and that INV is the corresponding bitwise operator, and that the relational operators gives 0 and 1, and not 0 and -1. At least I think it should be documented in the manual that the precedence of NOT is different from GW-BASIC and VBA. I noted that Applesoft BASIC in Javascript has the same precedence for NOT as MMBasic, but that seems to be a bug in the JS-version, since Applesoft BASIC Ref says different in section 2.

PicoMiteVGA MMBasic Version 5.07.03RC10
Copyright 2011-2021 Geoff Graham
Copyright 2016-2021 Peter Mather
                                                     
> ?not 3<7                                            
1                                                    
> ?not (3<7)                                          
0                                                    
> ?not 3
0
> ?inv 3
-4
> ?(not 3)<7
1
> ?3<7
1


http://gwbasicprograms.blogspot.com/2012/01/operator-precedence-in-basic.html
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/operator-precedence
Edited 2022-01-12 03:32 by mobluse
Maker Pi Pico Rev1.2, DuinoMite-Mini, Raspberry Pi 0-4, iCE40HX8K, Arduino Uno, VM111, STK500, ZX81
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 06:06pm 11 Jan 2022
Copy link to clipboard 
Print this post

  Quote  Would it be possible to add some options to the PS/2 Keyboard support?


Next release - sorry about the pics some character in the text that the BB won't accept. The repeat rates are set in the PS2 keyboard H/W it is likely that some (cheap) keyboards may not implement them fully







  Quote  I just discovered that MMBasic has a different precedence for the NOT operator than GW-BASIC and VBA.


Clearly documented and the same in every version of MMBasic since day 1 2011. Same as C



Edited 2022-01-12 04:19 by matherp
 
mobluse

Newbie

Joined: 10/02/2013
Location: Sweden
Posts: 24
Posted: 02:08am 12 Jan 2022
Copy link to clipboard 
Print this post

OK, I didn't see that. I also noticed that one source about Applesoft BASIC was propably wrong since this manual says different in ch. 2 on p. 36. Applesoft seems to have the same precedence for NOT as MMBasic, but its AND and OR are not bitwise, and AND has higher precedence than OR, but in MMBasic AND and OR have the same precedence, which is unique.
http://cini.classiccmp.org/pdf/Apple/AppleSoft%20II%20Basic%20Programming%20Manual.PDF
> ?INV 3^2
16
> ?(INV 3)^2
16
> ?INV (3^2)
-10

According to the PicoMite User Manual p. 20 NOT and INV should have lower precedence than ^, but has higher.
Edited 2022-01-13 08:57 by mobluse
Maker Pi Pico Rev1.2, DuinoMite-Mini, Raspberry Pi 0-4, iCE40HX8K, Arduino Uno, VM111, STK500, ZX81
 
mobluse

Newbie

Joined: 10/02/2013
Location: Sweden
Posts: 24
Posted: 01:39am 13 Jan 2022
Copy link to clipboard 
Print this post

I wrote a program that demonstrates some differences between different BASIC dialects. There are four tests. First line of each test has no parenthesis, and then there are two lines with parenthesis, and they have initials of the BASIC code that works the same as the first line.
5 Print "AS=AppleSoft, MM=MMBasic, GW=GW-BASIC"
10 Print 10,1 Or 1 And 0
20 Print 20,1 Or (1 And 0),"AS,GW"
30 Print 30,(1 Or 1) And 0,"MM"
40 Print 40,1 = 2 <> 0
50 Print 50,1 = (2 <> 0),"MM"
60 Print 60,(1 = 2) <> 0,"AS,GW"
70 Print 70,-1^2
80 Print 80,-(1^2),"GW"
90 Print 90,(-1)^2,"AS,MM"
100 Print 100,Not 3<7
110 Print 110,Not (3<7),"GW"
120 Print 120,(Not 3)<7,"AS,MM"

As you can see MMBasic is rather like AppleSoft BASIC, except for OR and AND, and = and <>. YABasic works as GW-BASIC (except False is -1 for GW-BASIC), and Python works as YABasic after translation:
print("AS=AppleSoft, MM=MMBasic, GW=GW-BASIC")
print(10,1 or 1 and 0)
print(20,1 or (1 and 0),"AS,GW")
print(30,(1 or 1) and 0,"MM")
print(40,1 == 2 != 0)
print(50,1 == (2 != 0),"MM")
print(60,(1 == 2) != 0,"AS,GW")
print(70,-1**2)
print(80,-(1**2),"GW")
print(90,(-1)**2,"AS,MM")
print(100,not 3<7)
print(110,not (3<7),"GW")
print(120,(not 3)<7,"AS,MM")

The difference for NOT is stated in the manual, but not so clearly for OR/AND, =/<>, and -/^ AFAIK.
Maker Pi Pico Rev1.2, DuinoMite-Mini, Raspberry Pi 0-4, iCE40HX8K, Arduino Uno, VM111, STK500, ZX81
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 06:32pm 13 Jan 2022
Copy link to clipboard 
Print this post

V5.07.03RC12


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


Various bug fixes to CSUB code.
The zip includes a new cfunction header file PicoCFunctions.h
and a new version of the cfunction generator program ARMCFGENV144.bas

Change to OPTION KEYBOARD
OPTION KEYBOARD nn [,capslock] [,numlock] [repeatstart] [repeatrate]
The optional parameters capslock and numlock set the initial state of the keyboard (default 0, 1).
The repeatstart defines how  how long before a character repeats the first time (valid 0-3 = 250mSec, 500mSec, 750mSec, 1S: default 1=500mSec).
The repeat rate defines how fast a character repeats after the first repeat (valid 0-31 = 33mSec to 500mSec: default 12=100mSec).

Change to AUTOSAVE
This mode is terminated by entering Control-Z  or F1 which will then cause the received data to be transferred into program memory
overwriting the previous program. Use F2 to exit and immediately run the program.

Here is a sample CSUB which demonstrates hooking a C procedure into the H/W interrupt generated by a a change of state on a GPIO using various firmware internal routines linked by the header file

SetPin gp6,fin
main
Do :Loop
CSub MAIN
00000013
'intprog
B086B510 681B4B0D 3201681A 17D3601A 9100210A 6809490A 0020AC03 4B094788
0020681B 4C084798 200A2100 47986823 21016823 4798200D BD10B006 10000388
10000330 1000032C 10000310
'main
681B4B07 447A4A07 4A07601A 23006811 6811600B 6811604B 6812608B 477060D3
100003C4 FFFFFFAB 10000388
End CSub


#include "PicoCFunctions.h"
static void intprog(void){
int *a=(int*)CFuncRam;
*a=*a+1;
char b[10];
IntToStr(b,*a,10);
MMPrintString(b);
putConsole(10,0);
putConsole(13,1);
}
void main(void){
CFuncInt1=(unsigned int)&intprog;
CFuncRam[0]=0;
CFuncRam[1]=0;
CFuncRam[2]=0;
CFuncRam[3]=0;
}
 
wolfme
Newbie

Joined: 26/10/2021
Location: Germany
Posts: 31
Posted: 07:17am 14 Jan 2022
Copy link to clipboard 
Print this post

RC12:

After running a program, i cannot edit it anymore:

> edit
[681] Sub my_exit()
Error : Invalid in a program
>

sub my_exit:

Sub my_exit()

 ausgabetext$="bye bye                  "
 text_setzen 0
 Print ESC"[2J";              ' CLS VT100
 Print ESC"[?25h";            ' Cursor visible
 Print ESC"[?6l";             ' Curor Pos 1
 Print ESC"[0m";              ' reset all VT100 attributes

 ' set original STRG-C again
 Option Break 3
 On key 3,0

 ' EOP
 End

End Sub


what's wrong?
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 08:06am 14 Jan 2022
Copy link to clipboard 
Print this post

Can't replicate with the bit of code you posted. Will need minimum complete program that can demonstrate the issue
 
wolfme
Newbie

Joined: 26/10/2021
Location: Germany
Posts: 31
Posted: 08:54am 14 Jan 2022
Copy link to clipboard 
Print this post

Hi Peter,

here is another program.
It's for testing.
I cannot edit before starting.

>
> new
> Option Break 3
> on key 3,0
> XMODEM RECEIVE
Saved 35872 bytes
>
>
> edit
[666] Sub format_ft(ft_nbr,_vorne$, _hinten$, _2zeile$)
Error : Invalid in a program
>


Thanks!


Max7219-scroll-Text-5.zip
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10055
Posted: 09:51am 14 Jan 2022
Copy link to clipboard 
Print this post

V5.07.03RC13


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

Fixes bug which caused edit command to be rejected in certain circumstances
New option for SETPIN pinno,CIN [,change]
'change' can be 1=rising edge (default if not specified), 2=falling edge, 3=both edges
 
wolfme
Newbie

Joined: 26/10/2021
Location: Germany
Posts: 31
Posted: 10:46am 14 Jan 2022
Copy link to clipboard 
Print this post

wow, that was a fast fix!
works now.
Many Thanks!
 
Kabron

Regular Member

Joined: 30/11/2017
Location: Germany
Posts: 65
Posted: 12:45pm 14 Jan 2022
Copy link to clipboard 
Print this post

I found an ERROR in Picomite User Manual Draft.
Picture on page 32 refers to DS1307, powered with 3.3V.
This chip does not work from 3.3V with battery connected.
It has to be powered from 5V.
 
     Page 7 of 9    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025