Jump to content

Вильнюс БЕЙСИК

Вильнюс Базовый
Парадигма императивный , алгоритмический
Впервые появился 1986 год ; 38 лет назад ( 1986 )
Диалекты
БЕЙСИК -86, БЕЙСИК-88
Под влиянием
MSX БЕЙСИК
Под влиянием
Никто
Вильнюс БЕЙСИК на БК-0010-01

Vilnius BASIC , иногда известный как BK BASIC , представляет собой диалект BASIC языка программирования , работающий на компьютерах Elektronika BK-0010-01/BK-0011M и UKNC . Он был разработан в Вильнюсском университете , расположенном в Литве была республикой Советского Союза , которая в то время .

В отличие от большинства микрокомпьютерных диалектов BASIC той эпохи, которые были интерпретаторами , Vilnius BASIC представлял собой язык компиляции и запуска , который компилировал исходный код, когда пользователь входил в систему. RUN команда. В остальном он был похож на GW-BASIC и MSX BASIC по стилю и большинству функций, хотя в нем отсутствовали некоторые мультимедийные команды, имеющиеся в MSX. Одна странность заключалась в том, что он не позволял использовать более одного оператора в одной строке — функция, обычно реализуемая с помощью двоеточия. У него также не было возможности открывать более одного файла данных одновременно.

Только версия UKNC имела полноэкранный редактор , версии машин серии 0010 использовали построчный редактор . Машинно-зависимые функции, такие как графические операторы, параметры и PEEK/POKE адреса также были разными на разных машинах.

Описание

[ редактировать ]

Редактирование программы

[ редактировать ]

В отличие от большинства диалектов BASIC той эпохи, Vilnius BASIC представлял собой систему компиляции и запуска , а не интерпретатор . Когда пользователь вводит RUN, компилятор считывает код и создает исполняемый файл многопоточного кода , который затем запускает. Тем не менее, эта деталь была в значительной степени невидима для пользователя, поскольку система по-прежнему позволяла вводить операторы без номера строки для прямого (немедленного) режима или с номером для косвенного режима, и в этом случае новая строка добавлялась в программу. или заменить строку с тем же номером, если она уже существовала.

К концу 1970-х годов большинство диалектов микрокомпьютеров предлагали полноэкранный редактор, в котором пользователь мог использовать клавиши курсора для перемещения по программе и вводить изменения в любую видимую строку кода. Системы Electronica эмулировали PDP-11 , машины, которые были построены в эпоху, когда компьютерные терминалы с курсорной адресацией не были широко доступны, и, таким образом, сохранили старый стиль линейного редактора . В этих системах отображается приглашение, которое позволяет пользователю ввести одну строку кода или вызвать ранее набранную строку, а затем отредактировать ее на месте.

Команды и утверждения

[ редактировать ]

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

Первые, известные как команды, включали в себя общие CONT, LIST, NEW, RUN. CLOAD and CSAVE загружать и сохранять программы на кассету . AUTO включил автоматический ввод номера строки, RENUM перенумеровал строки в текущей программе и DELETE удалил диапазоны строк, используя тот же формат «to», что и LIST, например, DELETE -200 удалит все, от начала программы до включая строку 200.

Примитивы Вильнюса были похожи на другие BASIC той эпохи и поддерживали большинство элементарных утверждений, таких как DATA, DEF FN, DIM, END, FOR..TO..STEP..NEXT , GOSUB , GOTO , IF..THEN с дополнительными ELSE, INPUT, (необязательно) LET, LIST, PRINT, ON...GOTO и ON...GOSUB, ЧТЕНИЕ, REM , ВОССТАНОВЛЕНИЕ, ВОЗВРАТ , СТОП . В отличие от большинства диалектов, в Вильнюсе не разрешалось использовать более одного утверждения в строке.

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

[ редактировать ]

Как и в большинстве диалектов, имена переменных должны были начинаться с буквы, за которыми могли следовать другие буквы или цифры. Имена переменных могли иметь любую длину, но сохранялись или сопоставлялись только первые два символа, а это означает, что ввод PRT001=1 подписан PR=5 в результате в памяти появится одна переменная, известная как PR, со значением 5.

одинарной и двойной точности В Vilnius BASIC было четыре основных типа данных: строки, числа с плавающей запятой и целые числа. Если не указано иное, предполагалось, что переменные имеют двойную точность, хранятся в восьми байтах и ​​обеспечивают точность около 17 цифр. Для сравнения, в большинстве диалектов MS использовался 5-байтовый формат для чисел с плавающей запятой. Если ! был добавлен к имени переменной, значение сохранялось с одинарной точностью, используя четыре байта с точностью около 7 цифр. % указал целое число, используя одно 16-битное слово для хранения значений от -32768 до +32767. Если значение с большей точностью присваивалось переменной с меньшей, любое лишнее просто отбрасывалось; A%=1.5 приведет к тому, что A% будет иметь значение 1.

Числовые константы в исходном коде также могут быть указаны как определенный тип с использованием тех же индикаторов; 50% сохранит константу как целое число, 0.05! или 5E-02 хранит значение одинарной точности 0,05 и 0.05 или 5D-02 сохраняет то же значение в формате двойной точности по умолчанию. Вильнюс также имел дополнительную возможность вводить числовые константы в виде строк двоичных, восьмеричных или шестнадцатеричных символов, добавляя к строке префикс & и одна буква, обозначающая тип: B, O, H. Например, A=&H9A8B преобразует шестнадцатеричную строку H9A8B в эквивалентное десятичное значение 39563 и сохраняет его в A.

Включены операторы для числовых значений. +, -, *, /, ^ добавление \ для целочисленного деления и MOD на остаток. Таким образом 5\2 возвращает 2, а 5 MOD 2 возвращает 1. Числовые функции включают стандартные ABS, ATN, COS, EXP, INT, LOG, RND, SGN, SIN, SQR, TAN. В него также вошли FIX оператор, аналогичный INT но всегда усекается до нуля, так что FIX(-1.5) возвращает -1 вместо -2, как INT.

Помимо PEEK и POKE , которые возвращали 16-битные значения, система также предлагала OUT and INP, которые были похожи, но применяли к значениям битовую маску , позволяющую устанавливать или очищать отдельные биты. [1] CLS очистил экран. Системные функции включают в себя FRE который возвращал объем свободной памяти, и TAB который переместился в данный столбец. AT (x,y) работало аналогично TAB, но перемещало курсор в заданное место X,Y.

Добавление к переменной суффикса $ указал, что это строка. Строковые функции включают в себя общие ASC, CHR$, LEN, STR$, VAL. STRING$ функция создает копии заданной строки шаблона, так что A$=STRING$(17, "X") создаст строку из 17 X. [2] Включена только одна функция манипуляции, MID$, который работает как в MS, но также может использоваться для замены символов в существующей строке, MID$(A$,1,1)="Y" заменит первую букву A$ на Y. INKEY$ возвращает текущую нажатую клавишу на клавиатуре, если таковая имеется. [3] + использовался для конкатенации строк , как и в большинстве диалектов.

The HEX$, OCT$ and BIN$ функции возвращали строку, кодирующую переданное значение. Например PRINT HEX$(255) производит FF, в то время как PRINT BIN$(255) выдаёт 0000000011111111.

Графические дополнения

[ редактировать ]

Системы Electronica включали поддержку компьютерной графики , а Vilnius BASIC включал ряд операторов для работы с графикой. Одной интересной особенностью этой системы было то, что координаты X,Y записывались в скобках. Система запоминала последнюю заданную точку, и новые местоположения можно было указывать с помощью значка @, например, если последняя команда рисования была в (100,100), можно было бы превратить пиксель в (105,105) в цвет 3 с помощью PSET @(5,5),3. Было пять значений цвета: от 0 до 3.

В дополнение к PSET, можно было рисовать линии от-до, используя пару координат, разделенных знаком минус, аналогично команде LIST, например LINE (100,100)-(120,120),3. В своей простейшей форме, CIRCLE взял пару X,Y для центра, радиуса и цвета, CIRCLE (120,120),30,1. Он также может строить дуги по заданным начальному и конечному углам в радианах. CIRCLE (120,120),30,1,0,1.5и может «сжать» вертикальную ось, чтобы создать эллипс, CIRCLE (100,100),20,1,,,0.4. PAINT (100,100),3,1 выполнил заливку, начиная с (100,100), заполняя цветом 3 и двигаясь наружу, пока не увидел цвет 1.

Наконец, появился многоцелевой DRAW команда. Для этого потребовалась строка, в которой закодирована серия шагов рисования, которые могли создать сложную фигуру в одной строке кода. Четыре основных направления обозначались буквами U, D, L и R (вверх, вниз, влево, вправо). Углы в 45 градусов были, двигаясь по часовой стрелке, E (вверх-вправо), F, G и H (вверх-влево). Например, DRAW "R20D20L20U20" создаст квадрат со сторонами длиной 20 пикселей, начиная с последней нарисованной позиции. Помимо направлений, команду M можно было использовать для указания явных координат, например «M100,120», для которых скобки не требовались. C меняет цвет, B перемещается, не рисуя линию, а N сбрасывает координаты до тех, которые были до команды DRAW.

Имеется единственная графическая функция, POINT(x,y), который возвращает номер цвета этого места на экране.

Пример программы

[ редактировать ]
1 CLS 
2 FOR X%=30% TO 1% STEP -2% 
3 ? AT(X%,1%);"*" 
4 ? AT(X%,20%);"*" 
5 NEXT X% 

Эта программа очищает экран, создает цикл на основе целочисленных значений, а затем использует AT Команда для поочередного перемещения курсора между значениями Y от 1 до 20, печатая (используя короткую форму PRINT, ?) звездочку в обоих местах. В результате получается серия из 30 звездочек в двух горизонтальных линиях.

См. также

[ редактировать ]

Библиография

[ редактировать ]
  • Митрюхин, В. К.; Донской, А. Н.; Михайлов, А. В.; Немов, А. М. (1986). Программирование для БК-0010-01 [ Программирование для БК-0010-01 ] (на русском языке). версия 24.07.
  • «Восточно-европейский домашний компьютер» . Германия: HCM - Музей домашних компьютеров.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5ef3ccf3b276c24a7e02756c1a25d9a2__1710191820
URL1:https://arc.ask3.ru/arc/aa/5e/a2/5ef3ccf3b276c24a7e02756c1a25d9a2.html
Заголовок, (Title) документа по адресу, URL1:
Vilnius BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)