PicoMite V6.00.02 release candidates - all versions
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10850 |
V6.00.02RC0 is available on https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip Changes from b18 Installing this will re-initialise all flash and options etc. New Commands and Functions Command BIT(var%,bitno)=0 or 1 'sets a specific bit (0-63) in an integer variable Function BIT(var%,bitno) 'returns the value of a specific bit (0-63) in a integer variable (0 or 1) These make it very easy to use flags in a program with minimum memory usage Command BYTE(var$,byteno)=0 to 255 ' sets a specific byte in a string to an integer value function byte(var$,byteno) 'returns the integer value of a specific byte in a string (0-255) these are the equivalent of the command MID$(var$,byteno,1)=CHR$(value) and the function ASC(MID$(var$,bytebo,1)) but faster and more obvious Functions MM.HRES, MM.VRES, MM.VER, M.I2C, MM.FONTHEIGHT, MM.FONTWIDTH, MM.PS2, MM.HPOS, MM.VPOS, MM.ONEWIRE, MM.Errno, MM.ErrMsg$, MM.WATCHDOG, MM.DEVICE$ are now all implemented as written and none of them are converted to MM.INFO calls by the pre-processor function TEMPR(Pinno [,timeout]) 'new optional parameter timeout to override the default (200mSec) to allow for slow devices command TEMPR START GPno [,resolution(0-3)] [,timeout] 'new optional parameter timeout to override the default (100, 200, 400, or 800mSec) to allow for slow devices Other changes already in b18 Bugs fixed Various fixes to OPTION LIST Fixes bug in forward references in PIO assembler when the starting line number is > 1 Fixes bug in PRINT @(x,y) when outputting to a computer console By default disables heartbeat and enables access to all pins on RP2350B Allows selection of GP19 for PSRAM PIN Fixes bug in TILE HEIGHT 12 command in PicoMiteVGA Fixes bug in TILE HEIGHT command in PicoMiteHDMI[USB] setting the screen to white Fixes bug in LINSTR changing the regular expression if a variable Fixes various bugs in PIO assembler Fixes bug in DMA to/from PIO2 on the RP2350 Fixes memory leak in PLAY MP3 when using SPI audio Fixes bug causing crash when trying to play all audio files in a directory if the number exceeds 20 Fixes bug in LINE PLOT Fixes bug with ADC when system clock is above about 252MHz Fixes onewire/tempr functionality when using parasitic connection Changes initialisation of HDMI pins to increase drive needed for some monitors Changes and enhancements the default CPU speed for the standard RP2040 PicoMite is now 200MHz. Raspberry Pi have now officially approved the RP2040 for that speed with a voltage of 1.15V which is what is set Changing MODE to be the same now clears all framebuffers etc. Layer buffer now available in VGA mode 1 (252MHz and above) and all HDMI mode 1 resolutions Supports ; at the end of LONGSTRING PRINT to suppress the CR/LF I2C(2) OPEN now supports 1000 as a speed FILE command can now be used in a program CHAIN fname$ [,cmdline$] ' Allows the program to run another program with the variable space preserved - command is recommended to be used in top level program and not from within a subroutine (may work OK but not tested for side-effects) EDIT FILE command used in a program will now only be memory limited the same as EDIT SAVE CONTEXT [CLEAR]' saves the variable space and optionally clears it - command should be used in top level program and not from within a subroutine (may work OK but not tested for side-effects). If used in a subroutine a subsequent LOAD CONTEXT must DEFINITELY be in the same subroutine or a crash/corruption will DEFINITELY happen. LOAD CONTEXT [KEEP]' restores the variable space to the previously saved state and optionally preserves the stored variables to allow a second LOAD if required. RAM command (RP2350 with PSRAM only) functions like the FLASH command with 5 program slots available in PSRAM. All commands except RAM LOAD (copies a RAM slot to the main flash program space) can be used in a program. RAM FILE LOAD n,fname$ [,O[VERWRITE]] can be used to load a RAM slot from a standard disk .BAS file SHIFT-F3 to F10 now work for computer console. NB: Shift-F1, F2, F11, and F12 don't appear to send codes so can't work PLAY MODFILE will preferentially use space in PSRAM if enabled for the file buffer (RP2350 only). In this case a modbuffer does not need to be enabled with the OPTION command OPTION AUDIO I2S BCLKpin, DATApin This allows a I2S DAC to be used to provide high quality Audio. The firmware transmits the data in 32-bit mode and FLAC, MP3 (RP2350 only), and WAV data is output with no loss of information. This command reserves BCLKpin and BCLKpin+1 for the bit clock and word clock and Datapin for the I2S data. It requires an I2S DAC that can PLL the bitclock to create its own master clock. Tested on PCM5102A and TDA1387T . For example: OPTION AUDIO I2S GP1,GP5 GP1 is the bit clock GP2 is the word clock GP5 is the data pin All normal audio should work TONE, MP3 (RP2350 only), FLAC, WAV, MOD, SOUND SAVE PERSISTENT n% 'saves the value n% in memory that will survive a watchdog reset (RP2040 and RP2350) or a physical reset (RP2040 only) MM.INFO(PERSISTENT) ' recovers any value saved as above PIO INIT MACHINE pio%, statemachine%, clockspeed [,pinctrl] [,execctrl] [,shiftctrl] [,startinstruction] [,sideout [,setout] [,outout] sideout, setout, and outout can be set to 0 (default) or 1 to specify if pins defined in pinctrl should be initialised as inputs (0) or outputs (1) MM.INFO(BOOT) Tells you the reason for the last restart of the Pico Returns: Restart - the device has been restarted with CPU RESTART or an OPTION command S/W Watchdog - the device has been restarted by a software watchdog timeout H/W Watchdog - the device has been restarted by a hardware watchdog timeout Firmware update - the device has been restarted following a firmware update Power On - the device has been powered up Reset Switch - the device has been restarted using the reset switch Unknown code &Hn - unknown reason - please report the code and version RP2040/2350 LIST PINS - lists the current status of all pins on the processor PIO code can now be inserted directly into Basic between a call to PIO ASSEMBLE and .end program. All PIO instructions are included as MMBasic commands including the 6 directives Includes support for FT6336 capacitive touch chip OPTION TOUCH FT6336 IRQpin, RESETpin [,BEEPpin] [,sensitivity] sensitivity is a number between 0 and 255 - defaults to 50, lower is more sensitive. SDA and SCK should be connected to valid I2C pins and set up with OPTION SYSTEM I2C TOUCH function works as before + TOUCH(X2) and TOUCH(Y2) returns the position of a second touch location or -1 if no second location is touched. LIST SYSTEM I2C Produces a display showing the addresses of all I2C device connected to the SYSTEM I2C pins New PIO functionality for RP2350A and RP2350B Adds MOV PINDIRS,src as valid instruction Adds support for 'prev' and 'next' for the IRQ command New PIO functionality for RP2350B PIO SET BASE pionum, n 'sets the base of logical PIO pins to 0 or 16 to allow pins GP30-47 to be used for PIO Use GAMEPAD MONITOR before plugging in a gamepad and when plugged in it will show the before and after report with each change of buttons Use GAMEPAD CONFIGURE vid,pid,i0,c0,i1,c1,i2,c2,i3,c3,i4,c4,i5,c5,i6,c6,i7,c7,i8,c8,i9,c9,i10,c10,i11,c11,i12,c12,i13,c13,i14,c14,i15,c15 to set up a gamepad that isn't supported before plugging it in. All 34 parameters are mandatory. New functionality from Geoff - with thanks Now supporting BYVAL & BYREF. BYVAL & BYREF are prefixes that can be applied to parameters in the definition of a sub or function. BYVAL will force the interpreter to use the value of the supplied argument even if a variable is supplied. BYREF informs the interpreter that a variable is expected and if that is not supplied it will throw an error. Additional parameter for OPTION LCDPANEL paralleldisplaytype (e.g. SSD1963_7[_16]) OPTION LCDPANEL display, orientation [,backlightpin] [,DCpin] [,NORESET] [,DB0pin] The new parameter only applies to the RP2350B and allows the starting pin for the 8 or 16 data pins to be specified (defaults to GP0) e.g. OPTION LCDPANEL SSD1963_4_16, LANDSCAPE,,,GP36,,GP2 This allows SSD and other parallel displays to be used on the new 64-pin DIL development board Allows seek to increase file size on the A: drive Adds support for additional gamepads 126MHz operation no longer supported for VGA versions - now defaults to 252MHz HDMI VERSIONS OPTION RESOLUTION 640/640,252000/720/800/848/1024/1280 RP2350 VGA VERSIONS OPTION CPUSPEED 252000/315000/360000/378000 'NB: not available when widescreen mode enabled OPTION WIDESCREEN 720/848/OFF RP2040 VGA VERSIONS OPTION CPUSPEED 252000/315000/378000 'NB: not available when widescreen mode enabled OPTION WIDESCREEN 720/OFF These commands between then allow 640x480 @ 75HZ - all versions 640x480 @ 60HZ - all versions 720x400 @ 60HZ - all versions (widescreen) 800x600 @ 56Hz - all RP2350 versions 848x480 @ 60Hz - all RP2350 versions (widescreen) 1024x768 @ 60HZ - HDMI versions 1280x720 @ 60Hz - HDMI versions (widescreen) The actual CPU speeds used are: 372MHz 1280x720 315MHz 640x480 @ 75Hz 252MHz or 378MHz 640x480 @ 60Hz 324MHz 1024x768 360MHz 800x600 336MHz 848x480 283.2MHz 720x400 |
||||