МК-БЕЙСИК

язык программирования для компьютера МиниKот-MK2.

v1.09 (c) 2020-2024 МК-БЕЙСИК чипбейсик.ру

 

Лицензия    

Программа регулируется GPL (GNU General Public Licence) версии 3 или более поздней, любое использование программного обеспечения/информации, не соответствующей GPL или за пределами сферы GPL, запрещено! MK-BASIC основан на проекте AVR-ChipBasic, и является его измененной версией. Программа модифицировалась исключительно для собственных нужд. Авторы не дают никаких гарантий на свои программы и не несут ответственности за проблемы, возникшие в результате их использования.

 

Общие сведения. 

Каждая программа состоит из строк. Все ключевые слова, кроме функции могут быть сокращены до двух символов. После каждого ключевого слова должен быть пробел.

 

Числа, переменные и функции

ChipBasic знает только один тип данных,int (от -32767 до 32767 включительно). Доступно 26 переменных (A-Z). Константы могут вводится как в десятичной, так и в шестнадцатеричной форме, причем в последней отрицательные значения не допускаются. Шестнадцатеричные числа начинаются с $. Разрешены следующие операции:

+ Сложение

- Вычитание

* Умножение

/ Деление

% Остаток от деления

& Логическая И

# Логическое ИЛИ

Сравнения (=,<>,<,<=,>,>=)

 

Названия функций сокращать нельзя.После имени функции в скобках указывается выражение.

ABS      абсолютное значение

SGN      вычисляет знак (-1,0,1) выражения

NOT      инверсия

SQR      квадратный корень

RND      генератор случайных чисел

DIN      считывание данных IOport

ADC      возвращает аналоговое значение напряжения на указанном пине IOport

XPEEK    считывает данные из внешней микросхемы памяти (пятая микросхема EEPROM)

XPOKE    сохраняет данные на внешнюю микросхему памяти (пятая микросхема EEPROM)

LO       возвращает младший байт

HI       возвращает старший байт

KEY      считывание клавиатуры

COL      флаг столкновения для спрайта 1...4 (0/1)
 

Ключевые слова

LIMIT v,min,max - ограничение диапазона значений переменной.v-переменная, min-минимальное значение, max-максимальное
BREAK – прерывает выполнение программы
END -  завершает работу программы в текущем месте
GOTO -  безусловный переход к определенной строке программы
IF - THEN - условный оператор,  состоит из IF за этим следует выражение. 
FOR - NEXT Для цикла  существует только основная форма без указания ширины шага. Поскольку стек ограничен 9 записями, в программе могут быть только 9 циклов.
CALL - RETURN Оператор перехода в подпрограмму с возвращением из нее. В отличие от большинства диалектов языка basic, GOSUB здесь называется CALL. Так же как и предыдущий оператор, программа ограничена 9 циклами.
CLS - очищает экран
POS Y,X - курсор устанавливается на место с координатами  Y, X
PRINT – вывод  на экран или на последовательный порт
PRINT “HELLO” – вывод на экран
? “HELLO” – сокращенный ввод оператора PRINT
PRINT #0;”HELLO” – вывод на экран
PRINT #1;”HELLO” – вывод на последовательный порт
PRINT @10,10;”HELLO” – Вывод на экран с указанием координат.
PRINT %16 – вывод символа с указанием адреса в таблице символов

SCREEN n - переключение таблицы символов.0-только для системы,1-первая таблица,2-вторая таблица
EMIT - выводит символы по горизонтали, разделенные запятыми, на экран/последовательный порт, в зависимости от того что было выбрано в последний раз.
YEMIT -Выводит символы по вертикали, разделенные запятыми, на экран/последовательный порт, в зависимости от того что было выбрано в последний раз.
LCHAR n - (Начиная с верхней части изображения), n строк символов перемещаются на один символ влево. 
GCHAR v,y,x - определяет символ в позиции y, x и записывает его в переменную v
COLOR v Изменение цвета работает только для операторов  PLOT, BOX и FBOX
Где n 0 до 7,  0=черный, 1=синий, 2=красный, 3=пурпурный, 4=зеленый, 5=голубой, 4=желтый и 7=белый. Если цвет равен 0, пиксели удаляются, информация о цвете не изменяется
PLOT Y,X – рисует «пиксель» в координатах X,Y
DRAW Y1,X1,Y2,X2 - Рисует линию
BOX Y1,X1,Y2,X2 - рисует прямоугольник 
FBOX Y1,X1,Y2,X2 - рисует заполненный прямоугольник 
SDEF n,t,c - определяет спрайт, где n-это номер спрайта (1-4), t- тип (см. ниже) и c- положение знака в таблице символов. Тип t может варьироваться от 0 до 15:
0,8        Один символ
1-7        От 2 до 8 символов по горизонтали
9-15    От 2 до 8 символов по вертикали

Спрайты – состоят  из одного символа, но несколько раз бок о бок по горизонтали или друг на друге по вертикали. Доступны 4 спрайта. Отображается ли спрайт в новом месте, он будет удален заранее на старом месте, если он был виден.
SSHOW n,y,x - спрайт n изображается в позицию Y,X. Если спрайт  нарисован в новой позиции, то он будет удален из предыдущей позиции. Если в новой позиции уже находился другой символ, то спрайт не рисуется в новой позиции, а поднимается флаг столкновения. 
SHIDE n – прячет (удаляет) спрайт
COL(n) – запрос флага на столкновение спрайта n
NOTE n - выводится звук с высотой тона n (полутоновые шаги  от 220 Гц), n=от 0 до 63 выводятся ноты, при N=255 шум. 
INPUT – оператор ввода. Могут быть указаны переменные, разделенные запятыми, вызывают курсор ввода. 
RKEY V - нажатая в данный момент клавиша записывается в переменную V. Если клавиша не нажата, записывается 0. 
WKEY V - ожидается нажатие клавиши, и нажатая клавиша записывается в переменную V. 
KEY - эта функция обеспечивает различные запросы клавиатуры как значение -1,0,1.  Если ни одна из двух кнопок не задействована, возвращается 0 в качестве значения функции. 
KEY(0)    левая Shift возвращает 1, левая CTRL возвращает -1, оба 0 
KEY(1)    правая Shift возвращает 1, правая CTRL возвращает -1, оба 0 
KEY(2)    Клавиша «ВЛЕВО» возвращает -1, клавиша «Вправо» 1 
KEY(3)    Клавиша «ВНИЗ» возвращает -1, клавиша «ВВЕРХ» 1     
WAIT n – пауза на n * 0,1 секунд.  
SYNC n – ожидание n синхронизации изображений 
TSET n - внутренний таймер (10 Гц) устанавливается в значение N 
TGET n - внутренний таймер (10 Гц) считывается и сохраняется в переменную
DIR n - устанавливает направление ввода / вывода IOport
OUT n,b -установка (b=1) или сброс (b=0) пина n для IOport
SPUT n - байт выводится на последовательный порт 
SGET n –считывается символ с последовательного порта и сохраняется в переменную
ESET A - сохраняет значение переменной A во внутреннем EEPROM
EGET B -считывает значение из внутреннего EEPROM в переменную B