]]> ]]>

Galaksija BASIC

Реализация языка программирования Basic

Galaksija BASIC — это интерпретатор языка BASIC для домашнего компьютера Galaksija. Сам интерпретатор частично основан на коде, взятом из реализации BASIC на компьютере TSR 8, для совместимости с Microsoft BASIC. Многочисленные модификации Galaksija BASIC включают элементарную поддержку массивов, новый код для работы с графикой. В целом же данные реализации не намного ушли от оригинала.

Ядро интерпретатора полностью содержалась в 4 Кб ROM памяти “A” или “1”. У оригинального же компьютера был зарезервированный слот для ROM расширения “B” или “2”, который обеспечивал больше количество команд и особенностей, таких как встроенный ассемблер Z80.

Ключевые слова и символы, обеспечиваемые ROM “A”/”1”.

Ядро реализации содержит 3 специальных символа и 32 зарезервированных слова:

  • ! комментарий (аналог команды REM стандартного BASIC)

  • # аналог команды DATA стандартного BASIC

  • & префикс для шестнадцатеричных чисел

  • ARR$(n) резервирует массив строк

  • BYTE служит как PEEK, когда используется как функция (на пример, PRINT BYTE(11123)) и как POKE, когда используется как команда (на пример, BYTE 11123,123)

  • CALL n вызывает подпрограмму BASIC, аналог команды GOSUB в большинстве реализаций BASIC (на пример, CALL 100+4*X)

  • CHR$(n) преобразует число в строку

  • DOT x, y отображает или проверяет пиксель с указанными координатами (0<=x<=63, 0<=y<=47).

  • DOT * отображает часы или время управляемой содержимым переменной Y$

  • EDIT n указывает какая строка программы будет отредактирована

  • ELSE стандартная часть конструкции IF-ELSE (В Galaksija не используется THEN)

  • EQ сравнивает в алфавитном порядке переменные X$ и Y$

  • FOR стандартный цикл FOR

  • GOTO стандартная команда GOTO

  • HOME эквивалент стандартной команды CLS , которая очищает экран

  • HOME n защищает n символов с верху экрана от прокрутки

  • IF стандартная часть выражения IF-ELSE (В Galaksija не используется THEN)

  • INPUT обеспечивает ввод переменной пользователем

  • INT(n) функция возвращает максимально возможное целое число меньшее или равное n

  • KEY(n) проверка нажатия клавиши с символом n

  • LIST отображает программу

  • MEM возвращает размер потребляемой памяти

  • NEW очищает текущую программу

  • NEW n очищает программу и перемещает в начало области BASIC

  • NEXT стандартное прерывание цикла FOR

  • OLD загружает программу с магнитной ленты

  • OLD n загружает программу с адреса n

  • PTR возвращает адрес переменной

  • PRINT выводит число или строку

  • RETURN возврат из подпрограммы BASIC

  • RND возвращает случайное число с интервала от 0 до 1

  • RUN исполняет программу на BASIC

  • SAVE сохраняет программу на магнитную ленту

  • STEP стандартная часть цикла FOR

  • STOP прекращает исполнения программы на BASIC

  • TAKE замещает команды READ и RESTORE. Если параметром выступает имя переменной то исполняется как READ иначе RESTORE

  • UNDOT x, y сбрасывает пиксель с указанными координатами

  • UNDOT * останавливает часы

  • USR вызывает машинную подпрограмму

  • WORD PEEK и POKE для двух байтов

Ключевые слова и символы, обеспечиваемые ROM “B”/”2”.

Расширенный BASIC содержит в ROM “B” or “2” 1 зарезервированный символ и 22 зарезервированных слова:

  • %
  • /LABEL
  • ABS(x)
  • ARCTG(x)
  • COS(x), COSD(x)
  • DEL
  • DUMP
  • EXP(x)
  • INP(x)
  • LDUMP
  • LLIST
  • LN(x)
  • LPRINT
  • OUT
  • PI
  • POW(x,y)
  • REN
  • SIN(x), SIND(x)
  • SQR(x)
  • TG(x), TGD(x)

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам