MMBasic – это совместимая с Microsoft BASIC реализация языка программирования BASIC. Впервые MMBasic появился на небольшом компьютере Maximite на основе микроконтроллеров PIC32 от Microchip. В настоящее время, MMBasic работает на различныхаппаратных платформах, включая DOS. Эта версия документации предназначена для Raspberry Pi Pico PicoMiteVGA компьютера.
Пример программы.
Для входа в редактор программ введие команду EDIT. Все что вы наберёте на клавиатуре, будет вставлено в позицию курсора. Клавиши со стрелками перемещают курсор. Клавиша Backspace удаляет символ перед курсором.
Чтобы быстро понять, как работает PicoMiteVGA, попробуйте следующиее:
В командной строке введите EDIT, а затем нажмите клавишу ENTER. Запустится редактор.
В редакторе введите строку: PRINT "Hello World"
Нажмите клавишу F1 на клавиатуре. Это сохранит вашу программу и вы выйдете в командную строку.
В командной строке введите RUN, а затем нажмите клавишу ENTER.
Вы должны увидеть сообщение: Hello World
Поздравляем. Вы только что написали и запустили свою первую программу на PicoMiteVGA MMBasic.
Если вы снова наберете EDIT, вы вернетесь в редактор, где сможете изменить или дописать свою программу.
Руководство по программированию на языке BASIC
Если вы не знакомы с языком программирования BASIC, самое время обратиться к Приложению G. (Программирование на BASIC - Учебное пособие) в конце этого руководства.
Это всеобъемлющее руководство по языку, которое познакомит вас с основами программирования в удобном для чтения формате с большим количеством примеров.
Команды и ввод программы
В командной строке вы можете ввести команду и она будет немедленно выполнена. Часто вы будете делайть это, чтобы MMBasic запустил программу или установил параметры. Но эта возможность, также, позволяет проверить работу команды в командной строке.
Чтобы войти в редактор программы используйте команду EDIT. EDIT запускает полноэкранную программу редактор, встроенный в MMBasic. Этот редактор включает в себя расширенные функции, такие как поиск и копирование, вырезание и вставка в/из буфера обмена.
Также, Вы можете написать программу на своем настольном компьютере, используя любой редактор, вроде Блокнота, а затем загрузить её на PicoMiteVGA по протоколу XModem (см. команду XMODEM) или путем потоковой передачи по последовательному соединения через USB в консоли (см. команду АВТОСОХРАНЕНИЕ).
Третий и удобный способ написания и отладки программы — использование MMEdit. Эта программа для Windows компьютера, позволяет вам редактировать вашу программу на компьютере, а затем передавать ее на PicoMiteVGA через последовательный порт USB одним щелчком мыши. MMEdit был написан Джимом Хили и его можно бесплатно загрузить с сайта https://www.c-com.com.au/MMedit.htm.
Одна вещь, которую вы не должны делать, это использовать старый BASIC добавлял префикс с номером к каждой строке.
Номера строк необязательны в MMBasic, поэтому вы все равно можете использовать их, если хотите, но если вы вводите строку с номером строки в подсказке, MMBasic выполнит ее немедленно.
Структура программы
Программа на BASIC начинает выполняться с первой строки и выполняется до тех пор, пока не завершится выполнение последей строки программы или не встретится команда END. Завершив выполнение программы, MMBasic отобразит приглашение командной строки (>) и будет ждать ввода команд с консоли.
Программа состоит из ряда операторов (команд), каждая из которых предписывает интерпретатороу языка Бейсик что-то сделать.
Обычно, каждый оператор размещают на отдельной строке, но вы можете поместить несколько операторов в одной строке, раздели их символом двоеточие (:). Например:
A = 24.6 : PRINT A
Каждая строка может начинаться с номера строки. Однако номера строк были обязательными только в ранних интерпретаторах BASIC. Современные реализации (такие как MMBasic) в номерах строк не нуждаются. Вы все еще можете использовать их, если хотите, но они не имеют никакой пользы и, как правило, просто загромождают ваши программы. Это пример программы, использующей номера строк:
50 А = 24,6
60 PRINT А
Строка также может начинаться с метки, которую можно использовать в качестве цели для перехода к программе с помощью кнопки GOTO.
команда. Например (имя ярлыка JmpBack):
Прыжок назад: А = А + 1
ПЕЧАТЬ А
GOTO JmpBack
Метка имеет те же характеристики (длина, набор символов и т. д.), что и имя переменной, но она не может быть
то же, что имя команды. При использовании для маркировки строки метка должна располагаться в начале строки.
но после номера строки (если используется) и заканчиваться двоеточием (:).
Редактирование командной строки
При вводе строки в командной строке строку можно редактировать с помощью клавиш со стрелками влево и вправо для перемещения
вдоль строки, клавиша Delete для удаления символа и клавиша Insert для переключения между вставкой и перезаписью.
В любой момент клавиша Enter отправит строку в MMBasic, который ее выполнит.
Клавиши со стрелками вверх и вниз будут перемещаться по истории ранее введенных командных строк, которые можно
отредактированы и использованы повторно.
Горячие клавиши
Функциональные клавиши на клавиатуре или USB-консоли можно использовать в командной строке для автоматического
введите общие команды. Эти функциональные клавиши будут вставлять текст, за которым следует клавиша Enter, чтобы
немедленно выполняется команда:
F2
БЕЖАТЬ
F3
СПИСОК
F4
РЕДАКТИРОВАТЬ
F10
АВТОСОХРАНЕНИЕ
F11
XMODEM ПОЛУЧИТЬ
F12
XMODEM ОТПРАВИТЬ
Функциональные клавиши F1 и F5–F9 можно запрограммировать с помощью пользовательского текста. См. команду OPTION FNKey.
Сохранение программ
На PicoMiteVGA программа хранится во флэш-памяти и запускается оттуда. Когда программа редактируется через
РЕДАКТИРОВАТЬ или загрузить, он будет сохранен там. Флэш-память является энергонезависимой, поэтому программа не будет потеряна, если
пропало питание или сброшен процессор. Максимальный размер программы составляет 108 КБ.
Программы также можно сохранять на SD-карту (если она настроена) или на одну из восьми пронумерованных карт.
ячейки памяти (или «слоты») во флэш-памяти. Их можно использовать для сохранения предыдущих версий программы.
(на случай, если вам нужно вернуться к более ранней версии) или их можно использовать для сохранения совершенно других программ
который можно быстро загрузить в память программы и запустить.
Кроме того, MMBasic позволит программе BASIC загружать и запускать другую программу, сохраненную на пронумерованной флэш-памяти.
расположение с сохранением всех переменных и настроек исходной программы — это называется цепочкой и
позволяет запускать гораздо большую программу, чем обычно позволяет объем программной памяти.
Для управления этими пронумерованными местоположениями во флэш-памяти вы можете использовать следующие команды (обратите внимание, что в следующих n
число от 1 до 8):
FLASH SAVE n
Сохраните программу в ОЗУ во флэш-памяти n.
МГНОВЕННАЯ НАГРУЗКА n
Загрузите программу из флэш-памяти n в ОЗУ.
МГНОВЕННЫЙ ЗАПУСК n
Запустите программу из флэш-памяти n. Это очищает все переменные, но не
стереть или изменить программу, хранящуюся в основной памяти программ.
ФЛЭШ-СПИСОК
Отображение списка всех местоположений флэш-памяти, включая первую строку каждой программы.
FLASH LIST n [,все]
Перечисляет программу, хранящуюся в ячейке n. Используйте FLASH LIST n,ALL для списка
без разрывов страниц
УДАЛЕНИЕ ПРОШИВКИ n
Стереть местоположение флэш-памяти n.
have no benefit and generally just clutter up your programs. This is an example of a program that uses line
numbers:
50 A = 24.6
60 PRINT A
A line can also start with a label which can be used as the target for a program jump using the GOTO
command. For example (the label name is JmpBack):
JmpBack: A = A + 1
PRINT A
GOTO JmpBack
A label has the same specifications (length, character set, etc) as a variable name but it cannot be the
same as a command 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 (:).
Editing the Command Line
When entering a line at the command prompt the line can be edited using the left and right arrow keys to move
along the line, the Delete key to delete a character and the Insert key to switch between insert and overwrite.
At any point the Enter key will send the line to MMBasic which will execute it.
The up and down arrow keys will move through a history of previously entered command lines which can be
edited and reused.
Shortcut Keys
The function keys on the keyboard or the USB console can be used at the command prompt to automatically
enter common commands. These function keys will insert the text followed by the Enter key so that the
command is immediately executed:
F2
RUN
F3
LIST
F4
EDIT
F10
AUTOSAVE
F11
XMODEM RECEIVE
F12
XMODEM SEND
Function keys F1, and F5 to F9 can be programmed with custom text. See the OPTION FNKey command.
Saving Programs
On the PicoMiteVGA the program is held in flash memory and is run from there. When a program is edited via
EDIT or loaded it will be saved there. Flash memory is non-volatile so the program will not be lost if the
power is lost or the processor is reset. The maximum program size is 108KB.
Programs can also be saved to an SD card (if configured) or they can be saved to one of eight numbered
memory locations (or ‘slots’) in the flash memory. These can be used to save previous versions of the program
(in case you need to revert to an earlier version) or they can be used to save completely different programs
which can be quickly loaded into program memory and run.
In addition MMBasic will allow a BASIC program to load and run another program saved to a numbered flash
location while retaining all the variables and settings of the original program – this is called chaining and
allows for a much larger program to be run than the amount of program memory would normally allow.
To manage these numbered locations in flash you can use the following commands (note that in the following n
is a number from 1 to 8):
FLASH SAVE n
Save the program in RAM to the flash location n.
FLASH LOAD n
Load a program from flash location n into RAM.
FLASH RUN n
Run a program from flash location n. This clears all variables but does not
erase or change the program held in the main program memory.
FLASH LIST
Display a list of all flash locations including the first line of each program.
FLASH LIST n [,all]
Lists the program held in location n. Use FLASH LIST n,ALL to list
without page breaks
FLASH ERASE n
Erase flash location n.