Home

Change log for MMBasic Ver 4.5

image

Contents

1. www thebackshed com forum forum_posts asp TID 5249 amp PN 1 Go to http geoffg net maximite html Downloads to download the CAN version Implemented the KEYDOWN function This will return the decimal ASCII value of the PS2 keyboard key that is currently held down or zero if no key is down Implemented the CHAIN command This allows a program to load and run another program while retaining the current state of the program ie the value of variables open files loaded fonts open COM ports etc As long as a program can be broken down into modules this command allows programs of almost unlimited size to be run even with limited memory Changed the PULSE command to run pulses of less than 3mS in blocking mode Pulses greater than this will run in the background Using blocking mode for short pulses allows for greater resolution 1uS which is useful for controlling servos Thanks to Peter Mather for the suggestion Colour Maximite On exiting a running program the foreground and background colours will now be reset to that in force before the program was run Thanks to Nick Marentes for the suggestion Fixed a bug in the PLAYMOD command where it did not correctly set the MM ERRNO read only variable when OPTION ERROR CONTINUE was in force Fixed a bug in the DOS version that caused the interpreter to crash when NEW was used after MMBasic reported Not enough memory Updated the MMBasic Language Manual to V4 2 to include the new f
2. Updated the MMBasic Language Manual to V4 5 This includes a correction to the PWM command the order of the parameters has been changed and the new features listed above TFT Maximite only o On version 1 3 of the printed circuit board PCB pin 20 is disabled due to a design fault However additional I O pins DO to D4 are available on connector PL7 and D8 to D13 are available on PL9 refer to the schematic for specific pin details o On version 1 4 of the printed circuit board PCB the pin 20 issue has been corrected In addition D4 to D7 are available on PL9 This means that with the combination of PL7 and PL9 there are 14 additional I O pins available ranging from DO to D13 refer to the schematic for specific pin details o Fixed a bug which caused the TOUCH CREATE r x y command to throw a syntax error used to create a touch sensitive area on the screen o Anew command TOUCH DISABLE will disable a touch item without removing it from memory Disabled items are automatically shaded grey dimmed and will not respond to touch o Anew command TOUCH ENABLE will enable a touch item that has been previously disabled This redraws the item at its old coordinates Newly created items are enabled as default o TOUCH REMOVE works as before but also clears the item from screen and sets the space occupied by the item to the current background colour o The keyword ITEM which was optional in touch commands now cannot be used ie TOUCH IT
3. Spanish keyboard Thanks to Alberto Leibovich for this contribution When run on the flash file system drive A the FILES command now produces a list that is similar to the listing of the SD card In particular it now includes the size of the file When run on the SD card the FILES command now lists the number of directories and files found Added the option to generate two stop bits on the serial interfaces When listing or saving a program the shortcut is now listed as the command PRINT Modified the CHAIN command to automatically run the RESTORE command reset the DATA pointer following the successful chain to a new program Increased the amount of memory available in the DOS version If the range of pins specified by the PORT command and function includes pin s are not valid or not properly configured an error will not be raised Instead the pin will be ignored or return a zero bit A background pulse can now have its timing changed on the fly or can be terminated early see the PULSE command for details Fixed a bug in the CHAIN command that could throw an error indicating too many GOSUBS FOR LOOPS DO LOOPS or similar Corrected a bug when copying or renaming a file on the flash file system drive A which sometimes corrupted the flash file system Corrected a bug which limited the resolution of the PWM duty cycle to 1 it is now 0 1 or better Fixed a bug where sometimes the CLR function generate colour codes
4. This can now be read using the virtual PIN 21 SETPIN is not required before reading from this pin Rewritten the SPI function to improve performance and provide much needed features The transmission mode and the number of bits to send and receive can now be set The clock speeds have been increased to 3MHz H setting 500KHz M setting and SOKHz L setting See the updated Appendix D in the MMBasic Language Manual for details Added support for the Italian and Belgium keyboards CONFIG KEYBOARD IT or BE Thanks to Fabrice Muller for the contribution Added the function to the shortcut for PRINT Improved the performance of the COPY command It is now up to 100 times faster Corrected a number of issues with the UBW32 version that required a rearrangement of the T O pin allocations As a result IC now works with SDA on pin 12 A15 and SCL on pin 13 A14 Also pins 11 E8 12 A15 13 A14 and 14 E9 work as frequency counting inputs Refer to the README TXT file included with the UBW32 MMBasic upgrade for details Fixed a bug that caused PAUSE 0 to pause for about 4 seconds Fixed a bug in the PC functions that prevented CTRL C from interrupting a hung session Fixed a bug that prevented CTRL C from interrupting COM2 when opened as console Fixed a bug that caused issues when referring to the root in a file spec ie B T BAS Modified handling of the prompt so that if an error occurred while evaluating the prompt
5. a bug that prevented FONT 3 from printing a space Corrected a bug where two or more consecutive colons would be treated as the program end Fixed a bug that caused the PIC32 to throw and exception when using CWD with no SD card and OPTION ERROR CONTINUE active Corrected a bug that occurred when spaces followed the last parameter in a parameter list Implemented more careful error checking in expressions This might cause an error in programs that contain an illegal sequence which was ignored in earlier versions To support the PLAYMOD command it no longer possible to append to files on the flash file system drive A Hopefully this feature will be reinstated at a later date Updated the MMBasic Language Manual and the relevant hardware manuals to V4 0 to include the new features listed above The BootLoader exe program for Windows users will now reprogram all hardware platforms Colour Maximite monochrome Maximite DuinoMite and UBW32 It is recommended that this program be used instead of mphidflash which can accidently overwrite the boot load routine in the PIC32 making rendering the computer inoperable Change log for MMBasic Ver 3 2C Added support for control keys in the EDIT command and the command line editor These work in addition to the normal function and arrow keys and are intended for use with terminal emulators that cannot generate VT100 code sequences The key associations are LEFT Ctrl S RIGHT Ctrl D UP Ctrl E DO
6. keys have been discontinued MMBasic is now always in editing mode when entering text at the command prompt or the INPUT or LINE INPUT commands This means that the editing keys can be used at any time to correct entered text Changed the codes generated by the special keys on a keyboard arrow keys function keys etc These are unique and generate different codes if the control shift or both keys are held down See Appendix E of the Maximite User Manual Added mapping of vt100 escape codes generated by terminal emulators such as Terra Term and Putty to the codes generated by a directly connected keyboard This means that a key press on the terminal emulator will have the same effect as the same key on the Maximite s keyboard Modified the CLS command to also generate the clear screen codes for an attached vt100 compatible terminal emulator Added the AUTO command to automatically generate line numbers when entering a program Added programmable function keys The keys F1 to F12 can now be programmed to generate a string of characters when pressed See the OPTION command for details To suit the new editing functions the cursor has been changed to a blinking underline The SAVE command has been modified so that the file name is optional and if omitted the last filename used in SAVE LOAD or RUN will be automatically used A predefined and read only variable MM FNAMES will contain this automatic filename Added the ability of the VAL
7. music synthesiser the PLAYMOD command It will play high quality stereo music and sound effects on the Colour Maximite and mono on the Maximite Implemented the TONE command which will generate a pure sine wave on the sound output on the Colour Maximite the frequency of each stereo channel can be different Implemented support for two channel pulse width modulation PWM outputs on the Colour Maximite and a single channel on the Maximite replacing the SOUND command Added the BLIT command This will make a high speed copy one area of the video screen to another the areas can be overlapping This is useful in games and for scrolling the display to simulate a strip chart or ECG type display Added the SPRITE command to load and manipulate sprites on the screen Sprites are 16x16 pixel objects that can be moved about on the screen without erasing or disturbing text or other graphics that may be in the background Implemented the LOADBMP command This will load a BMP formatted image and display it on the video screen the reverse of SAVEBMP Added the ability to use keywords with the PEEK and POKE commands These keywords can be used to specify memory areas within MMBasic in a portable manner Added the read only variables MM HPOS and MM VPOS to return the current print or graphic location on the video screen Added support for the UK keyboard CONFIG KEYBOARD UK Implemented interrupts for COM3 and COM4 on the DuinoMite Corrected
8. nn which will set the break key the key normally used to interrupt a running program to the keystroke with the numeric value nn The break key is always set to CTRL C on startup Modified the CHAIN command so that it will automatically close all interrupts when chaining to a new program This avoids confusing the interpreter if an old interrupt fires while executing the new program Modified CLS to take an optional argument which is the colour to use when clearing the screen Thanks to Cosmic Frog for the suggestion Fixed a bug where the KEYDOWN command sometimes returned zero for a short time when keys were pressed in quick succession Fixed a bug in the COPY command when a file path was used in the source and A was used as the destination Updated the MMBasic Language Manual to V4 3 to include the new features listed above Change log for MMBasic Ver 4 2 Added to the OPEN command the ability to specify a Data output Enable DE signal on COM1 for RS485 This signal will go high just before a byte is transmitted and will go low when the last byte in the transmit buffer has been sent Implemented the CAN Controller Area Network module written by John Harding This will run on the Colour Maximite and DuinoMite Mega and is a different firmware update to that used for the standard Colour Maximite and DuinoMite The Colour Maximite must be fitted with the PIC32MX795F512L processor and a separate driver chip will be required see http
9. on the Colour Maximite produced random characters Fixed a bug which caused the composite video on the Colour Maximite to be shifted to the right on the screen Improved the recovery from an error caused by a lack of space on drive A PLAYMOD will now play a file correctly after the previous attempt to play a file failed Updated the MMBasic Language Manual to V4 4 Change log for MMBasic Ver 4 3A Added the implied RUN command At the command line it is possible to omit the RUN keyword and MMBasic will search the default drive and directory for a matching program and if found it will be run See the implied RUN command at the start of the Commands listing in the MMBasic Language Manual for more details Added the predefined automatic variable MM CMDLINE This holds any text that was on the command line when the implied RUN command is used The aspect ratio can now be specified when drawing a circle Because the Maximite s pixels are rectangular an aspect ratio of 0 833 will result in a perfect circle on most monitors Other ratios can be specified for a variety of ovals If aspect is not specified the default is 1 0 which is backwards compatible with early versions of MMBasic Thanks to Rob Severson for pointing out how it could be implemented Changed the way the KEYDOWN command works so now it will clear the keyboard input buffer whenever it is used Fixed an issue in the PRINT and LIST commands for the DOS version where an end of l
10. string it will be reset to the standard prompt gt This prevents a re occurring error which would lock up MMBasic Doubled the time that XMODEM waits for a remote communication before giving up Changed the default baud rate for serial communications to 9600 baud was 1200 Forced the sound output to stop when an error occurs Updated the MMBasic Language Manual and the relevant hardware manuals to V3 2 to include the new features listed above Change log for MMBasic Ver 3 1 Added defined subroutines using the SUB and END SUB commands See the separate document Defined Subroutines pdf for a tutorial on defined subroutines Added the command LOCAL for declaring a variable that is local to a subroutine Added support for the 1 Wire protocol Thanks to Gerard Sexton for the contribution Added support for the DuinoMite series of boards from http olimex com The DuinoMite version uses a different hex file from the Maximite version Check the readme file supplied with the upgrade for details Added the PULSE command to generate a pulse positive or negative on an output pin The pulse duration can be as short as 2uS or as long as 49 days Modified the PAUSE command so that the pause interval can be a fraction For example PAUSE 0 2 is equal to a delay of 200 uS Added the CONFIG TAB command to set the number of spaces for each tab column The syntax is CONFIG TAB 2 or 4 or 8 The default is 2 Changed the repeat find func
11. 65000 Fixed a bug where the MOD operator did not throw an error on an attempted divide by zero Fixed a bug with the DATES function not rolling over month end correctly Fixed a bug where a character with the decimal value of 255 could not be stored in a file Fixed a bug related to indexing into an array with Option Base 1 in effect Fixed a bug which caused a crash when 10 files were simultaneously open Fixed a bug when resolving constant values with a floating point exponent ie 5 32e 12 Updated the Maximite User Manual to V2 5 to fix many typographical errors and include the new features listed above Thanks to all the Maximite users who proofread this document and alerted me to its faults Change log for MMBasic Ver 2 4 Fixed an issue which caused glitches or noise on the video output while a BASIC program was running This particular issue caused random horizontal lines of pixels to be intermittently shifted 8 pixels to the right when MMBasic was running a program ie not waiting for user input A bug which caused the unary negation function to fail has been fixed For example PRINT SIN 2 now works Fixed a bug which caused the RENUMBER command to miss renumbering a GOSUB embedded in an IF THEN ELSE command Fixed a bug which caused negative numbers in DATA statements to be returned as positive numbers As a side result you can now use numeric expressions eg 8 60 in DATA statements The RUN file co
12. Change log for MMBasic Ver 4 5 Implemented the ability to decode Sony compatible infrared remote control signals see the IR command Implemented the ability to generate a Sony compatible 12 bit infrared remote control signal for communicating between another Maximite or Micromite or a Sony product using 12 bit commands Implemented the DISTANCE command to get a distance measurement from a HC SRO4 ultrasonic distance sensor Implemented the LCD command to display data on 1 2 and 4 line LCD display modules Added the EXIT DO command which is the recommended method for an early exit of a DO LOOP Changed the composite video driver to output one extra scan line for odd fields This helps cheap composite LCD monitors as used with vehicle reversing cameras to lock onto the video signal previously with this type of monitor the video image would slowly roll up the screen The watchdog timer will now be turned off if the break character normally CTRL C is used to interrupt a running program Added the ability to PEEK or POKE a variable using the VAR keyword Extended the PORT command and function to act on a number of groups of pins Also an error will now be generated if any pin is invalid or not configured correctly The SETPIN command will now accept mnemonics for the pin configuration eg DIN AIN etc These are easier to remember but the command will still accept numbers as used in previous versions of MMBasic Added the a
13. EM CREATE will cause an error use TOUCH CREATE instead o Updated the TFT Maximite Manual to V4 5 of MMBasic and PCB Rev 1 3 and 1 4 Change log for MMBasic Ver 4 4B Added the CONFIG FONT command to set the default font Added support for the TFT Maximite published by c t Hardware Hacks magazine in Germany See http geoffg net tft maximite html for details On a PS2 keyboard the Caps Lock and Num Lock LEDs now illuminate to indicate the state of the keyboard The Num Lock key will now switch the keypad between editing keys and a numeric keypad it no longer generates a code Fixed a bug which caused MMBasic to hang when the right Alt key on non US keyboards was used Fixed a bug which could cause I2CRCV and I2CSRC to throw an error when the receiving variable was a normal variable not an array Updated the MMBasic Language Manual to V4 4B added the CONFIG FONT command Change log for MMBasic Ver 4 4A Fixed a bug that caused I O pin 17 to be set high whenever a PS2 keyboard key was pressed Change log for MMBasic Ver 4 4 Added the LIBRARY LOAD and LIBRARY UNLOAD commands which provide the ability to add libraries of user defined commands or functions to MMBasic from within a running program Added the SEEK command and the ability to use random read write binary file I O by opening a file as RANDOM See Appendix I in the MMBasic Language Manual for more details Updated the LOC and LOF functions to return the c
14. O command works With no arguments this command will take lines of text from the keyboard or USB and append them to program memory without modification This is useful for adding program lines that do not have line numbers It also allows a program without line numbers to be edited on a PC then sent to MMBasic via the paste text function of a USB terminal window To terminate the auto entry mode use Control C When supplied with arguments ie start and increment numbers the operation of the AUTO command is unchanged Commands that work with filenames will now accept a full directory path as part of the file specification For example RUN BASIC TEST FILE1 BAS or FILES DIR1 DIR2 will now work as expected The only exception is the NAME command which will not accept a full pathname you must change to the relevant directory first Implemented the CONFIG command to reconfigure MMBasic This command differs from other options in that it permanently reconfigures MMBasic and only needs to be run once ie the setting will be remembered even with the power turned off The power must be cycled after changing a configuration setting for the change to take effect At this time there are three configuration settings that can be set CONFIG CASE UPPER or LOWER or TITLE The default is TITLE CONFIG COMPOSITE NTSC or PAL The default is PAL CONFIG VIDEO OFF or ON The default is ON Altered the way memory is allocated for the video buffer Now if t
15. Q function to accept strings starting with amp H hex amp O octal and amp B binary Created a separate version of MMBasic for the UBW32 experimenter s board This is fully compatible with the Maximite version but uses a different hex file from the Maximite version so that it can be loaded using the UBW32 bootload program See http geoffg net ubw32 html for details Fixed a bug which corrupted some transmitted characters when the serial port COM1 was opened as console Fixed a bug where serial port COM1 always had flow control enabled regardless of the SFC option Fixed an issue where Control C on a serial port opened as console would not interrupt a running program Fixed a bug which caused the SAVEBMP command to fail with a confusing error message when a file or COM port was open as file number 1 or 2 Fixed a bug which prevented the RUN filename command from throwing an error if the file did not exist Fixed a bug that caused the LOF function to return an invalid value Updated the User Manual to V2 7 to include the new features listed above Change log for MMBasic Ver 2 6 This version is 30 faster when running a program compared to Ver 2 5 This is a result of optimising the video generation routines Other benefits include faster scrolling and the elimination of noise which sometimes appeared on the VGA video output Implemented asynchronous serial capability Two serial ports are available wit
16. T and LINE INPUT commands will now set the variables to zero or a null string if there is insufficient data to fill them Fixed a bug which caused the LIST command to scroll too far if lines were longer than the screen width or if the LOCATE command had been used Version 2 7 of the User Manual remains valid and has not changed Change log for MMBasic Ver 2 7 Optimised several areas within MMBasic to improve speed of execution This speed improvement will depend on the type of program running but it should be about 40 faster than version 2 6 Implemented an additional flash drive using the PIC32 s internal flash memory This drive is referred to as A while the SD card is B The drive A is useful with the mini Maximite see Silicon Chip November 2011 and the UBW32 as both of these do not have a SD card See the functional summary in the Maximite User Manual for more details Implemented a number of additional video fonts and provided the ability to switch between them using the FONT command Multiple fonts can be displayed simultaneously on the screen and custom fonts can be loaded from internal flash or SD card Implemented the XModem protocol in the XMODEM command for copying data to and from drive A or B Upgraded the EDIT command to use the editing keys arrow insert home end etc on a keyboard The EDIT command has may extra features such as the ability to go direct to a line that has caused an error The old editing
17. WN Ctrl X HOME Ctrl U END Ctrl K PageUp Ctrl P PageDn Ctrl L DEL Ctrl INSERT Ctrl N Fl Ctrl Q F2 Ctrl W F3 Ctrl R ShiftF3 Ctrl G F4 Ctrl T F5 Ctrl Y Added support for I O pin 7 with caveats on the DuinoMite This pin can also be used to measure frequency period and for counting Corrected an issue on the DuinoMite that prevented the SD card from operating when the video was disabled Corrected a bug that caused MMBasic to hang if the right ALT key was pressed on a PS2 keyboard configured as the standard US default layout On the DuinoMite the reset button will now clear an exception ie internal error message Fixed a bug that caused MMBasic to crash if an empty DATA statement was placed before all other DATA statements Corrected a bug that caused the LINE command to sometimes throw the error Expected opening bracket Change log for MMBasic Ver 3 2A The COPY command can now copy files with both the source and destination on drive A Baud rates for the hardware serial ports of the DuinoMite can now be set to any speed ie they do not have to be multiples of 300 Fixed a bug that prevented a line longer than the current screen width from being entered at the command prompt or with AUTO and INPUT Fixed a bug that caused MMBasic to freeze when the baud rate was specified for COM3 and COM4 DuinoMite only Fixed a bug that could corrupt drive A when the NAME command was used Fixed a bug that caused numeric vari
18. ables separated by spaces in the PRINT command to not print correctly Change log for MMBasic Ver 3 2 Added defined functions using the FUNCTION and END FUNCTION commands These compliment defined subroutines and allows the programmer to add a function to MMBasic that operates the same as the built in functions See the separate document MMBasic 3 X Features pdf for a tutorial on defined functions Added support for a DOS version of MMBasic Note that the DOS version does not support features of the Maximite version that are dependent on the Maximite hardware This includes external input output graphics special keyboard keys full screen editor and line editing See the DOS MMBasic ReadMe pdf for details Added dynamic memory management which greatly expands the amount of usefully available memory Now memory for all functions program variables and general use is automatically allocated from a central pool which can be as large as 109KB Added support for the hardware serial interfaces COM3 and COM4 on the DuinoMite They operate exactly the same as the standard ports but support speeds up to 460800 baud Added support for I O pins 11 and 12 with caveats on the DuinoMite Implemented a reliable method of detecting when the micro SD card has been removed or changed on the DuinoMite It is now no longer necessary to reset the DuiniMite when changing the SD card Added support for measuring the battery voltage on the DuinoMite
19. an Williams for the contribution Fixed a bug which caused the RUN command to throw an error when accessing a file on a drive that was not the default Fixed a bug associated with assigning a string longer than 11 characters to a programmable function key Fixed a bug which wrote incorrect data to a file on the internal flash drive that was opened for APPEND Fixed a bug in the interface to the SD card in the UBW32 version of MMBasic Corrected an issue which could cause the PIC32 to hang while writing to the internal flash drive Improved the speed of writing to the internal flash drive An average mix of read writes is now twice as fast as the same operations on an SD card To allow space for the full screen editor the amount of space reserved for the internal flash drive has been reduced slightly to 212KB Updated the User Manual to V3 0 to include the new features listed above Change log for MMBasic Ver 2 7A Implemented the ability to selectively switch the program output to the USB and video interfaces off and on Note that the output is always restored at the command prompt The commands are OPTION USB ON OPTION USB OFF OPTION VIDEO ON OPTION VIDEO OFF Fixed a bug which corrupted a file of more than 4076 bytes written to the internal flash drive A Fixed a number of issues with the INPUT command when used on a serial port Now the command will wait indefinitely until a carriage return character is received The INPU
20. bility to generate an interrupt on a pin going both high and low ie on any change See the keyword INTB in the SETPIN command Changed the syntax and command names of the IC commands and functions to be compatible with the Micromite Refer to Appendix B of the MMBasic Language Manual for details If you have an existing program that makes heavy use of the I C protocol it might be worth not upgrading if you do not need any of the other features that this version offers Changed the syntax and command names of the 1 Wire commands and functions to be compatible with the Micromite Refer to Appendix C of the MMBasic Language Manual for details In the DuinoMite version fixed an issue with COM3 where extra characters could be inserted in the received data stream Corrected an issue which caused the editor to crash when the video was turned off Fixed a bug which caused the default PWM duty cycle to be incorrect Fixed a bug that could cause the count on a counting pin to start with a count of one Fixed a bug which could cause some string functions to return an incorrect string Corrected a bug which allowed the RND function to return the number 1 the specifica tions state that it must return a number from zero to less than 1 Fixed a bug which caused MMBasic to remember old labels when using the CHAIN command Corrected a bug that caused an error when the LENGTH keyword was used when defining a string array using the LOCAL command
21. eatures listed above Change log for MMBasic Ver 4 1 Quote marks around a file name are now optional for all commands used at the command prompt Note that symbols such as and valid keywords in an unquoted file name will cause an error and in that event quotes will have to be used Quotes are always required if the command is used within a program or if the parameter is not a file name Added the PORT command and function Used as a command this can simultaneously set the outputs of up to 23 I O pins in one operation Used as a function it can read the values of up to 23 I O pins in one operation Corrected an issue with the Colour Maximite version of 4 0B which caused white text on the VGA output to show a coloured fringe Improved the full screen editor s efficiency when working over USB or a serial console Thanks to Bryan Rentoul for the contribution Corrected a bug in the monochrome Maximite version that caused some sprites to display incorrectly Corrected a bug that caused a corrupt VGA image on the Colour Maximite following CLS when Mode 4 with a background colour was selected Updated the MMBasic Language Manual and the relevant hardware manuals to V4 1 to include the new features listed above Change log for MMBasic Ver 4 0B Corrected a bug that caused XModem transfers to fail thanks to TassyJim for the fix Change log for MMBasic Ver 4 0A Colour Maximite only To avoid compatibility issues with some VGA mon
22. ee manuals MMBasic language reference MMBasic Language Manual Maximite and mini Maximite Maximite Hardware Manual UBW32 experimenter board UBW32 MMBasic Manual Updated the MMBasic Language Manual to V3 1 to include the new features listed above Change log for MMBasic Ver 3 0 Removed the need for line numbers in MMBasic programs Blank lines are also allowed making it easier to format programs for readability Line numbers are still accepted and old programs using line numbers should run as before Implemented labels as targets for GOTO GOSUB and any other commands that previously used a line number as a destination A label has the same specifications length character set etc as a variable name When used to label a line the label must appear at the beginning of a line but after a line number if used and be terminated with a colon character For example GOTO Label Label PRINT We have jumped to here The location of labels in the program are remembered while the program is running so the command GOTO label is much faster than GOTO linenumber which every time it is used forces a linear search through the program looking for the line number Changed the EDIT command to a full screen editor for editing program memory and files The editor will work equally well using the video output VGA or composite or a vt100 terminal emulator using USB or a console over a serial communications link Changed the way the AUT
23. h speeds up to 19200 baud with hardware flow control configurable buffer sizes and interrupt on buffer full For a full description see Appendix A of the Maximite User Manual Implemented the Serial Peripheral Interface SPI communications protocol Any number of SPI devices can be interfaced on any I O pins with speeds up to 500KHz baud For a full description see Appendix C of the Maximite User Manual Modified the SOUND command so that the duty cycle can be specified and the output frequency can be set as high as 1MHz These changes allow the sound output to be used as a precision Pulse Width Modulation PWM output for driving analogue circuits Implemented the LOG function it was documented but not implemented in Ver 2 5 Changed the DATE statement to allow a two digit year In this case MMBasic will automatically add 2000 to the year The USB driver in MMBasic has been modified to reduce the number of characters lost when sending data to a slow host Fixed an issue where the video output would blank while large amounts of data were being received on the USB interface Fixed a bug that prevented MMBasic from responding to an interrupt if a previous interrupt routine had been halted while running by an error or CTRL C Fixed a bug which prevented MMBasic from reading and writing data to the SD card and USB interface that contained a byte with the value of zero ie CHR 0 Fixed a bug where the STRING function would cau
24. he video is turned off or a mode such as composite is selected the unused memory compared to VGA is added to the general memory pool which in turn allows larger arrays to be declared Added the DIR fspec type function to search an SD card for directories and files fspec is a wildcard eg and type is one of VOL DIR or FILE for the type of entry to be returned The function will return the first entry found To retrieve subsequent entries use the function with no arguments ie DIR Added the COPY command to copy files with a new name and or between drives Thanks to Bryan Rentoul for the contribution Added the functions DEG radians and RAD degrees to convert between degrees and radians Added the function PI to return the value of pi Thanks to Alan Williams for the contribution Added the BIN number function to convert a number to a binary string Modified the LOCATE command to also send the appropriate cursor locate commands to a vt100 terminal emulator on the USB interface Thanks to Bryan Rentoul for the contribution Cosmetic changes to the way files are listed using the FILES command Modified the cursor behaviour when editing a command line The cursor will now automatically switch to the insert mode when the cursor is moved from the end of the line for example by using the left arrow key Added the ability to invert the pixels when using the graphic drawing commands by using colour as 1 Thanks to Al
25. ility to use a line number with the RUN command to start the program at a specified line number this was documented in V2 2 but not implemented Added the question mark symbol as a shortcut for the PRINT command keyword Fixed a timing error which caused all timed functions date time pause etc to run fast Fixed a bug in the SOUND function which caused a greater than usual error in the frequency of the sound Fixed a bug where UNTIL was not recognised in the LOOP command Fixed a bug which in some circumstances could cause an exception a reset when loading a program that was too large for the program space Fixed a bug which occasionally caused the EXIT FOR command to fail Fixed a bug which caused IRETURN to fail when returning from an interrupt which had interrupted a PAUSE command Updated the Maximite User Manual to V2 3 to include the new commands and other changes Change log for MMBasic Ver 2 2 The MEMORY command has been added This will list the three memory segments used by MMBasic and the amount of spaced used in each An error is now thrown when concatenating two strings with a combined length of greater than 255 characters previously this would cause the interpreter to crash MMBasic now throws an error when presented with an input line of greater than 255 characters previously it just discarded the extra characters Fixed a bug in the PRINT command which caused an intermittent crash on the const
26. ine was printed as CR CR LF Now it is the correct CR LF Fixed a bug where the PEEK and POKE commands could corrupt the video output Fixed a number of issues with the READ DATA commands Especially where incorrect syntax could cause the interpreter to crash Fixed a bug where entering 0 numeric zero followed by Enter at the command prompt could cause the interpreter to crash if no program was in memory If an attempt to dimension an array fails because of insufficient memory all reverences to the array are now correctly removed Fixed a bug where the read only variable MM DEVICES did not work in the DOS version Fixed a bug where the interpreter incorrectly reported an error when an opening or closing bracket was inside a quoted string in an expression Removed the RENUMBER command Updated the MMBasic Language Manual to V4 3A Change log for MMBasic Ver 4 3 Made a number of improvements to the handling of sprites o The SPRITE ON and SPRITE MOVE commands can optionally specify a background colour and MMBasic will use that rather than copying the video background This is faster and easier to manage when sprites overlap and a solid background is used o The SPRITE OFF command can use a comma separated list of sprites to turn off or the single keyword ALL o The SCOLLISION function has been implemented to detect if a sprite has collided with the edges of the screen or another sprite Implemented the command OPTION BREAK
27. itors that use pin 9 on the VGA connector for other purposes versions 4 0A and later will default to having the composite video feature turned off To enable composite video connect to the Colour Maximite via USB and issue either one of the following two commands CONFIG COMPOSITE PAL or CONFIG COMPOSITE NTSC Either of these two commands will enable the composite detect pin 9 on the VGA connector and select the correct video timing The command only needs to be run once and will be remembered even with the power turned off DuinoMite only Composite video is also disabled by default on the DuinoMite To enable it follow the instructions above or refer to the ReadMe file When using the RUN SAVE or LOAD commands quote marks are no longer required around the file name They are still required if the command is used within a program Fixed a bug that caused sprites on the monochrome Maximite to not display Change log for MMBasic Ver 4 0 Added support for colour on the Colour Maximite New commands include COLOUR to set the foreground and background colours MODE to set the display mode number of colours and SCANLINE to set specific scan lines to a colour See the section Graphics and Working with Colour in the MMBasic Language Manual Extended the commands that deal with external I O to address the Arduino compatible I O pins on the Colour Maximite Added support for the battery backed clock on the Colour Maximite Implemented a
28. mmand now checks if file exists before clearing the program currently in memory This means that if used with OPTION ERROR CONTINUE you can recover from an error when tying to run one program from within another The semicolon character is now optional between expressions in the print statement For example you can now use PRINT Voltage is x mV This was added to improve Microsoft compatibility Updated the Maximite User Manual to V2 4 to include the new features listed above Change log for MMBasic Ver 2 3 The internal mechanism for tokenising keywords ie command names etc has been changed to allow more keywords to be added to the language in the future As a side effect the rules for naming variables has been relaxed See the Maximite User Manual V2 3 for details In particular it is now valid to have a variable name which is the same as a command name Added the function PIXEL x y to find the value of a pixel on the VGA or composite screen and the statement PIXEL x y to turn a pixel on or off This supersedes the PSET and PRESET commands that are now only included for Microsoft compatibility Added the command SAVEBMP file which will save an image of the current VGA or composite screen as a BMP file on the SD card Added the command RENUMBER which will renumber the program currently held in memory including all references to line numbers in commands such as GOTO GOSUB ON etc Added the ab
29. ruct PRINT n ie no following comma On an internal crash caused by a bug in MMBasic the Maximite will now restart with a suitably apologetic error message The keyboard is now checked every 20uS previously it was every 25uS to improve reliability in detecting keystrokes The Maximite User Manual has been updated to version 2 2 This contains minor updates to clarify some parts of the text and add the MEMORY command Other than this there has been no significant change to the description of the commands or functions used in MMBasic
30. se MMBasic to crash if it was supplied with the wrong number of arguments Updated the Maximite User Manual to V2 6 to include the new features listed above Note that currently the RENUMBER command does not renumber line numbers used in the open commands for the T C and serial port interfaces Change log for MMBasic Ver 2 5 Added the EDIT command to allow convenient editing of program lines held in memory Added the OPTION PROMPT command to enable customisation of the command prompt Added the function CWD which returns the current working directory on the SD card Added PEEK POKE commands for manipulating memory within the PIC32 processor Added a preset read only variable MM VER which returns the version number of the firmware Added the COPYRIGHT command to list all contributors to the software and summarise the copyright Integrated support for I2C written by Gerard Sexton This fully supports master and slave operation 10 bit addressing address masking and general call as well as bus arbitration ie bus collisions in a multi master environment The description of these commands is contained in Appendix B of the Maximite User Manual Allowed the function PINO to return the digital value of a pin that is configured for open collector output This is useful when the pin is shared with other devices that might also pull the voltage on the pin low Changed the maximum line number that can be used in a MMBasic program to
31. tion in the full screen editor to use the key SHIFT F3 before it used two F3s So F3 will search and SHIFT F3 will repeat the search using the last text used in a search In the full screen editor added intelligent backspace so that if the line is indented the backspace key will backspace over the indented area in tab increments Added the x y function to the PRINT command to position the cursor Added support for French and German keyboards To select these keyboard layouts use the command CONFIG KEYBOARD US or FR or GR Thanks to Fabrice Muller for the contribution Added 16 Flash memory write failure to MM ERRNO Fixed a minor bug that caused the full screen editor to occasionally lose track of the cursor Fixed a bug that prevented the NAME command from renaming files on drive A Fixed a bug that caused MMBasic to crash when CONFIG VIDEO OFF was used Fixed a bug that prevented the full screen editor from working when the video output was set to composite Fixed a bug that caused the AUTO command to overwrite a line if a blank line was entered Fixed a bug that caused an error when a line number or label was used with the SETPIN command Fixed a bug that caused an error if there were an odd number of blank lines before a LOOP NEXT ENDIF DATA WHILE or WEND statement Moved the hardware details of the Maximite and UBW32 to separate manuals Created a language reference manual to concentrate on MMBasic There are now thr
32. urrent read write position and file length for use with random access files In the DIM command added the ability to specify the maximum length of each element in a string array using the LENGTH keyword MMBasic will use this parameter when allocating memory thereby reducing the amount of memory required compared to the default allocation of 255 characters per element This parameter can be set to any number from 1 to 255 See the DIM command for more details Implemented the WATCHDOG command This can be used to automatically restart the Maximite in the event that a programming or other fault occurs while running a program Implemented the ON KEY target command which will cause an interrupt to be generated whenever there is one or more characters waiting in the input buffer for the keyboard USB or serial console All commands that use an interrupt eg SETTICK ON KEY etc can now specify a user defined subroutine an addition to a label or a line number The interrupt subroutine will return control to the main program on an END SUB or EXIT SUB ie IRETURN should not be used in the subroutine Upgraded the SETTICK command to support up to four tick timers running simultaneously Added the SPRITE COPY command to aid in producing multiple animated sprites Added the SPRITE PASTE command which copies a sprite to the video without saving the background Turning off a sprite that was not on will now not cause an error Added support for the

Download Pdf Manuals

image

Related Search

Related Contents

  PERRENOUD, Philippe  turbo mh series chip conveyor service manual  GD900A User Instructions  Harbor Freight Tools 4_1/2 in. 6 Amp Heavy Duty Paddle Switch Angle Grinder Product manual  Installation instructions and User guide Instructions  NEC LCD5710-BK Brochure  LMP Bluetooth Keypad  Gigabyte GA-B85M-DS3H-A motherboard    

Copyright © All rights reserved.
Failed to retrieve file