Jump to content

MBASIC

(Перенаправлено с MBasic )
MBASIC
Парадигма императив
Разработано Майкрософт
Разработчик Майкрософт
ТЫ КП/М
Веб-сайт www .microsoft
Под влиянием
БАЗОВЫЙ

MBASIC — это BASIC в Microsoft BASIC реализация для операционной системы CP/M . MBASIC является потомком оригинальных интерпретаторов Altair BASIC , которые были одними из первых продуктов Microsoft. MBASIC был одной из двух версий BASIC, поставляемых в комплекте с компьютером Osborne 1 . Имя «MBASIC» происходит от имени дискового файла MBASIC.COM интерпретатора BASIC.

MBasic 5.21, работающий на системе Z80 CP/M, отображается на типичном для того времени монохромном мониторе.

Для MBASIC версии 5 требовалась система CP/M с объемом оперативной памяти (ОЗУ) не менее 28 КБ и хотя бы одним дисководом для дискет.

В отличие от версий Microsoft BASIC-80 настраивали , которые производители домашних компьютеров для использования определенных аппаратных функций компьютера, MBASIC полагался только на вызовы операционной системы CP/M для всех операций ввода и вывода. Были доступны только консоль CP/M (экран и клавиатура), построчный принтер и дисковые устройства.

MBASIC в ненастроенной форме не имел функций для графики , цвета, джойстиков, мышей, последовательной связи , сети , звука или даже функции часов реального времени . MBASIC не полностью поддерживал функции хостовой операционной системы CP/M, например, он не поддерживал пользовательские области CP/M для организации файлов на дискете. Поскольку системы CP/M обычно были однопользовательскими и автономными, в них не предусматривалось блокирование файлов или записей или какая-либо форма многозадачности . Помимо этих ограничений, MBASIC в то время считался мощной и полезной реализацией BASIC.

Языковая система

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

MBASIC — интерпретатор . Исходный текст программы хранился в памяти в токенизированной форме, при этом ключевые слова BASIC были заменены однобайтовыми токенами, что экономило место в памяти и ускоряло выполнение. Любая строка с префиксом номера строки сохранялась как текст программы; Операторы BASIC без префикса номера строки выполнялись немедленно как команды. Программы можно было вывести на экран для редактирования или сохранить на диск в сжатом двоичном формате или в виде обычного ASCII текста . Каждая исходная строка была идентифицирована номером, который можно было использовать в качестве цели для передачи GOTO или GOSUB . Предусмотрены только команды редактирования строк. [ 1 ] Часто бывает полезно сохранить программу в виде обычного текста и редактировать ее с помощью полнофункционального редактора.

Текст программы, переменные , дисковые буферы и сама операционная система CP/M должны были использовать 64-килобайтное адресное пространство процессора 8080 . Обычно при первом запуске MBASIC для программ и данных доступно менее 32 КБ памяти, даже на машине, оснащенной полными 64 килобайтами оперативной памяти. Строки комментариев с префиксом REM ключевое слово или апостроф могли быть помещены в текст программы, но занимали ценное пространство памяти, что не позволяло пользователям BASIC полностью документировать свой код. Чтобы обеспечить запуск более крупных и сложных программ, более поздние версии MBASIC поддерживали функции, которые позволяли считывать части текста программы и выполнять их под управлением программы (« CHAIN " и MERGE заявления). Никакой поддержки выполнения команд «оболочки» не было, хотя эту функциональность мог продублировать решительный программист.

Особым преимуществом MBASIC были полнотекстовые сообщения об ошибках синтаксиса и времени выполнения. В MBASIC также была функция «трассировки», которая отображала номера строк по мере их выполнения. Хотя это занимало то же пространство экрана, что и обычный вывод программы, это было полезно для обнаружения таких условий, как бесконечные циклы .

Файлы и ввод/вывод

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

Данные можно было читать и сохранять на диск либо в виде последовательных файлов (с разделением по соглашению CP/M: CR / LF в конце каждой строки), либо в виде файлов произвольного доступа с фиксированной длиной записи, которые, при наличии достаточно решительного программиста, , может использоваться для выполнения манипуляций с записями типа базы данных. Двоичный формат Microsoft для чисел с плавающей запятой был собственностью реализации, а это означало, что данные можно было обменивать только с другими программами, использующими текстовое представление ASCII, или же с помощью расширенного программирования для преобразования двоичного формата.

Переменные и типы данных

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

MBASIC поддерживал следующие типы данных:

  • 8-битные символьные данные в строках длиной от 0 до 255 символов;
  • 16-битные целые числа ;
  • 32-битная плавающая запятая (одинарная точность), эквивалентная шести десятичным цифрам, с двузначным показателем степени;
  • 64-битная плавающая запятая (двойной точности), эквивалентная шестнадцати десятичным цифрам, с двузначным показателем степени.

Строковые операторы включали выбор подстроки, конкатенацию, присваивание и проверку на равенство.

Массивы вышеуказанных типов допускались с числом измерений до 7, но с массивами не работали никакие функции или операторы; например, не было присвоения массивов. В отличие от некоторых других реализаций BASIC того времени, MBASIC не обеспечивал поддержку матричных операций, комплексных чисел или десятичного типа данных (BCD) для финансовых расчетов. Все операции с плавающей запятой выполнялись программно, поскольку типичные системы CP/M не имели аппаратного обеспечения с плавающей запятой . Встроенные математические функции ( синус, косинус , тангенс , натуральный логарифм , экспонента , квадратный корень ) давали результаты только с одинарной точностью. программный генератор псевдослучайных чисел Был предоставлен ; при этом пользователь вводил начальное число, чтобы получить последовательность чисел, полезную для игр и некоторых симуляций. MBASIC разрешен, но не требует LET ключевое слово для операторов присваивания.

Ранние версии BASIC для микрокомпьютеров были печально известны одно- или двухсимвольными именами переменных, из-за чего значения переменных было трудно вспомнить в сложных программах. MBASIC версии 5 допускал идентификаторы длиной до 40 символов, что позволяло программистам давать переменным читаемые имена.

Управление потоком программы

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

Управление потоком программы в MBASIC контролировалось IF...THEN...ELSE... условные тесты, WHILE...WEND петли и GOTO и GOSUB инструкции. Нет CASE заявление было доступно, хотя ON...GOTO... (вычисленный GOTO) обеспечивал многосторонние ветвления. Подпрограммы не имели параметров, и все переменные были глобальными. MBASIC не делал структурное программирование было легко обязательным для программистов, и писать спагетти-код .

PEEK, POKE и пользовательские функции

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

Ни одно обсуждение BASIC на 8-битных компьютерах конца 70-х и начала 80-х не было бы полным без упоминания важности функций PEEK и POKE для непосредственного чтения и записи в память. Поскольку эти системы обычно не имели защиты памяти , это позволяло программисту получить доступ к частям операционной системы или функциям, которые в противном случае были бы недоступны. Это также давало возможность пользовательским программам зависать в системе (обычно случайно). Например, программист CP/M может использовать POKE функция, позволяющая BASIC переключать консольное устройство на последовательный порт, если BIOS системы поддерживает это. Для машин с часами реального времени предусмотрен набор PEEK инструкции могли быть использованы для доступа к времени.

Для более сложных операций MBASIC позволял использовать определяемые пользователем функции, которые можно было вызывать из программы BASIC. Обычно они помещались в зарезервированную область памяти или помещались в строковые константы в виде серии машинных кодов ( кодов операций ). MBASIC также предоставила оборудование. INP и OUT инструкции, которые считывают и записывают непосредственно в аппаратные порты ввода/вывода 8080. Это можно использовать для управления периферийными устройствами из программы BASIC, если это позволяет аппаратное обеспечение системы.

Любые программы MBASIC, в которых используется PEEK и POKEи пользовательские функции машинного кода не переносились между машинами без модификаций.

Преемники MBASIC

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

Помимо BASIC-80 от Microsoft для CP/M, был также доступен вариант MBASIC для операционной системы ISIS-II .

MSX-BASIC также является хорошо известным преемником MBASIC и имеет несколько расширений, специфичных для машин MSX .

Все функции CP/M MBASIC были доступны в дисковой BASICA или GWBASIC IBM PC , что делало возможным миграцию программ из систем CP/M в совместимые с ПК. Токены, используемые для представления ключевых слов, были разными, поэтому программы CP/M приходилось сохранять в исходной форме ASCII. Обычно escape-последовательности форматирования экрана, включенные в версию CP/M, заменяются командами позиционирования курсора, которые есть в версиях BASIC для ПК, в противном случае потребуется небольшая переписывание.

CP/M BASIC Microsoft продала компилятор (известный как BASCOM ), который использовал исходный язык, аналогичный MBASIC. Программа, отлаженная под MBASIC, может быть скомпилирована с помощью BASCOM. Поскольку текст программы больше не находился в памяти, а элементы времени выполнения компилятора были меньше, чем интерпретатор, для пользовательских данных было доступно больше памяти. Скорость реального выполнения программы увеличилась примерно в 3 раза.

Разработчики приветствовали BASCOM как альтернативу популярному, но медленному и неуклюжему CBASIC . В отличие от CBASIC, BASCOM не нуждался в препроцессоре для исходного кода MBASIC, поэтому его можно было отлаживать в интерактивном режиме. [ 2 ] Недостатком было требование Microsoft взимать гонорар в размере 9% за каждую скомпилированную копию программы. [ 3 ] и 40 долларов за комбинацию аппаратного и программного обеспечения. Компания также оставила за собой право проверять финансовую отчетность застройщиков. Поскольку типичные ставки роялти авторов за программное обеспечение составляли 10–25%, InfoWorld в 1980 году заявила, что дополнительная ставка роялти BASCOM в размере 9% «может сделать разработку программного обеспечения совершенно убыточной», заключив, что «у Microsoft есть техническое решение [недостатков CBASIC], но не экономический». [ 2 ]

Важность MBASIC

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

MBASIC был важным инструментом в эпоху 8-битных компьютеров CP/M. Квалифицированные пользователи могут писать процедуры на MBASIC для автоматизации задач, которые в современных системах выполняются с помощью мощных команд прикладных программ или языков сценариев. Обмен полезными программами MBASIC был обычной функцией групп пользователей компьютеров . Ввод длинных списков BASIC из журнальной статьи был одним из способов «загрузки» программного обеспечения в новую систему CP/M. По крайней мере, один компилятор языка высокого уровня был написан на MBASIC, а также было написано множество небольших игр и служебных программ размером от нескольких строк до нескольких тысяч строк кода.

Другое использование

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

MBASIC — это также название коммерческого компилятора BASIC для Microchip Technology, семейства микроконтроллеров PIC разработанного компанией Basic Micro, Inc. и не имеющего отношения к интерпретатору CP/M.

  1. ^ Продукты CP/M, обеспечивающие поддержку полноэкранного редактирования, требовали собственных процедур установки для настройки программного обеспечения для конкретного компьютерного терминала, используемого в качестве системной консоли. В рамках CP/M не было предоставлено никакой поддержки для стандартизации возможностей терминала.
  2. ^ Перейти обратно: а б «Редакция» . Инфомир . 18 августа 1980 г. п. 8.
  3. ^ Пурнель, Джерри (декабрь 1980 г.). «БЕЙСИК, компьютерные языки и компьютерные приключения» . БАЙТ . п. 222 . Проверено 18 октября 2013 г.
  • Том Хоган и Майк Яннамико, Справочное руководство пользователя Osborne 1 , (1982) Osborne Computer Corporation
  • Дэвид А. Лиен, Справочник по BASIC , 2-е издание Энциклопедии компьютерного языка BASIC», (1981), Compusoft Publishing
  • Справочное руководство по BASIC 80 , Microsoft Corporation, без даты
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 68eb4610ea15796031e76a893e2e0730__1710188340
URL1:https://arc.ask3.ru/arc/aa/68/30/68eb4610ea15796031e76a893e2e0730.html
Заголовок, (Title) документа по адресу, URL1:
MBASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)