IBM БЕЙСИК
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2012 г. ) |
IBM Personal Computer Basic , обычно сокращаемый до IBM BASIC , — это язык программирования , впервые выпущенный IBM вместе с IBM Personal Computer, Model 5150 (IBM PC) в 1981 году. IBM выпустила четыре различные версии интерпретатора BASIC Microsoft , по лицензии Microsoft для ПК и PCjr . Они известны как кассетный BASIC, дисковый BASIC, Advanced BASIC (BASICA) и картриджный BASIC. Версии Disk BASIC и Advanced BASIC были включены в состав IBM PC DOS до PC DOS 4. В дополнение к функциям ANSI стандарта BASIC , версии IBM предлагали поддержку графического и звукового оборудования линейки IBM PC. Исходный код можно было вводить с помощью полноэкранного редактора, а для элементарной отладки программ предоставлялись ограниченные возможности . IBM также выпустила версию компилятора Microsoft BASIC для ПК одновременно с выпуском PC DOS 1.10 в 1982 году.
Фон
[ редактировать ]IBM лицензировала Microsoft BASIC для персонального компьютера IBM, несмотря на то, что у нее уже была собственная версия BASIC для мэйнфреймов компании. Дон Эстридж сказал: «У Microsoft BASIC были сотни тысяч пользователей по всему миру. Как вы собираетесь с этим спорить?» [1]
IBM Кассетный БЕЙСИК
[ редактировать ]Разработчик | Microsoft (для IBM ) |
---|---|
Впервые появился | 1981 |
Под влиянием | |
IBM Disk BASIC, IBM BASICA, GW-BASIC |
IBM Cassette BASIC имел 32 килобайта (КБ) постоянной памяти (ПЗУ), отдельной от 8 КБ ПЗУ BIOS исходного IBM PC, и не требовалась операционная система для запуска . Cassette BASIC предоставлял пользовательский интерфейс по умолчанию, вызываемый BIOS через INT 18h , если не был установлен дисковод гибких дисков или если загрузочный код не обнаруживал загрузочную дискету при включении питания. Название Cassette BASIC произошло от использования кассет, а не дискет для хранения программ и данных. Кассета BASIC была встроена в ПЗУ исходных ПК и XT, а также ранних моделей линейки PS/2 . Он поддерживает загрузку и сохранение программ только через интерфейс кассетной ленты IBM , который недоступен в моделях после оригинальной модели 5150. Версия 5150 начального уровня имела всего 16 КБ оперативной памяти (ОЗУ), чего было достаточно. для запуска Cassette BASIC. Однако Cassette BASIC использовался редко, поскольку лишь немногие ПК продавались без дисковода, а большинство из них продавалось с PC DOS и достаточным объемом оперативной памяти, по крайней мере, для запуска Disk BASIC - многие также могли запускать Advanced BASIC. Существует три версии Cassette BASIC: C1.00 (на первых компьютерах IBM с материнскими платами 16–64K), C1.10 (на всех более поздних компьютерах IBM, XT, AT и PS/2) и C1.20. (находится на PCjr).
IBM Диск БЕЙСИК
[ редактировать ]Разработчик | Microsoft (для IBM ) |
---|---|
Впервые появился | 1981 |
Под влиянием | |
IBM Кассетный БЕЙСИК | |
Под влиянием | |
IBM BASICA, GW-BASIC |
IBM Disk BASIC (BASIC.COM) был включен в исходную версию IBM PC DOS . Поскольку он использовал кассетное базовое ПЗУ объемом 32 КБ, [2] BASIC.COM не работал даже на очень совместимых клонах ПК , таких как Compaq Portable . [3] Название Disk BASIC произошло от использования дискет , а также кассет для хранения программ и данных. В коде на диске исправлены ошибки в резидентном коде ПЗУ и добавлена поддержка гибких дисков и последовательного порта .
Disk BASIC можно идентифицировать по букве D, предшествующей номеру версии. Он добавляет поддержку дисков и некоторые функции, отсутствующие в Cassette BASIC, но не включает расширенные звуковые и графические функции BASICA. Основной целью Disk BASIC было создание «облегченной» версии для компьютеров IBM с объемом памяти всего 48 КБ: тогда у BASIC.COM было бы около 23 КБ свободного места для пользовательского кода, тогда как у BASICA было бы только около 17 КБ. К 1986 году все новые ПК поставлялись как минимум с 256 КБ, а версии DOS после 3.00 превратили Disk BASIC в небольшую заглушку, которая называлась BASICA.COM для совместимости с пакетными файлами. Даже со всем этим избытком оперативной памяти BASIC по-прежнему будет выделять и управлять только около 61 КБ для пользовательских программ, будь то Cassette BASIC, BASIC.COM или BASICA.
IBM Расширенный БЕЙСИК
[ редактировать ]Разработчик | Microsoft (для IBM ) |
---|---|
Впервые появился | 1981 |
Платформа | Персональный компьютер IBM |
ТЫ | IBM-ПК DOS |
Под влиянием | |
IBM Cassette BASIC, IBM Disk BASIC | |
Под влиянием | |
GW-БЕЙСИК |
IBM Advanced BASIC (BASICA.COM) также был включен в исходную DOS IBM PC и требовал наличия резидентного в ПЗУ кода Cassette BASIC. [2] В него добавлены такие функции, как доступ к файлам на дискете, сохранение программ на диске, монофонический звук с использованием встроенного динамика ПК, графические функции для установки и очистки пикселей, аналогичные функции для рисования линий и кругов и установки цветов, а также обработка событий для связи и джойстик нажимает. BASICA не будет работать на компьютерах сторонних производителей (даже на так называемых «100% совместимых» машинах) или более поздних моделях IBM, поскольку в них отсутствует необходимый ROM BASIC.
Версии BASICA такие же, как версии соответствующих DOS, начиная с версии 1.00 и заканчивая версией 3.30. Ранние версии BASICA не поддерживали подкаталоги, а некоторые графические команды работали немного иначе. Например, если оператор LINE использовался для рисования линий, выходящих за пределы экрана, BASIC просто пересекал их с ближайшей соседней линией, тогда как в BASIC 2.x и более поздних версиях линии выходили за пределы экрана и не пересекались. Команда PAINT в BASIC 1.x начинала заполнение с указанной координаты и расширялась наружу в чередующихся направлениях вверх и вниз, тогда как в BASIC 2.x она заполняла все, что ниже начальной координаты, а затем, после завершения, все, что выше нее. Команда PAINT BASIC 1.x также использовала системный стек для хранения и при заполнении сложных областей могла вызвать ошибку ПЕРЕПОЛНЕНИЯ. Чтобы исправить это, можно использовать оператор CLEAR для расширения стека BASIC (размер по умолчанию — 128 байт). BASIC 2.x не использовал стек при рисовании и, следовательно, не имел этой проблемы.
Compaq BASIC 1.13 был первым автономным BASIC для ПК (для работы которого не требовалась кассета BASIC), а также единственной версией BASIC, помимо IBM BASICA 1.00 и 1.10, для использования FCB. [ нужны разъяснения ] и включить исходный оператор LINE с пересекающимися линиями (оператор PAINT в Compaq BASIC 1.13 работал так же, как и во всех более поздних версиях BASICA/GW-BASIC: он использовал новый алгоритм заполнения и не имел стека).
Ранние версии PC DOS включали несколько примеров программ BASIC, демонстрировавших возможности ПК, включая игру BASICA DONKEY.BAS .
GW-BASIC идентичен BASICA, за исключением включения в программу кода Cassette BASIC, что позволяет ей работать на компьютерах сторонних производителей и более поздних моделях IBM, у которых отсутствует Cassette BASIC в ПЗУ.
Картридж IBM PCjr BASIC
[ редактировать ]Версия с ПЗУ-картриджем BASIC была доступна только на IBM PCjr , выпущенном в 1984 году, и поддерживала дополнительные графические режимы и звуковые возможности, возможные на этой машине. [4] Это расширенный набор расширенного BASIC. [5] Картридж BASIC мог работать только в пределах первых 128 КБ памяти PCjr и не работал с расширением ОЗУ, т. е . функцию DEF SEG нельзя использовать для указания на сегменты памяти выше &H1FF0.
Картридж BASIC активировался путем ввода BASICA в командной строке DOS. И наоборот, IBM BASICA версий 2.1 и выше отказывалась запускаться, если они обнаруживали PCjr, но их можно было исправить, чтобы обойти это ограничение.
Операция
[ редактировать ]Кассета BASIC загружалась при загрузке ПК или PCjr без загрузочного диска или картриджа. Disk BASIC и Advanced BASIC загружаются, когда имя их команды (BASIC и BASICA соответственно) вводится в командной строке DOS (за исключением PCjr, который вместо этого активирует Cartridge BASIC), с некоторыми дополнительными параметрами для управления распределением памяти. При загрузке в идентификационном сообщении для входа отображается номер версии программы и запускается полноэкранный текстовый редактор (см. изображения справа). Функциональным клавишам назначены общие команды, которые отображаются в нижней части экрана. Для загрузки или сохранения программ можно вводить команды, а выражения можно вводить и выполнять в прямом (немедленном) режиме . Если строка ввода начинается с цифры, языковая система сохраняет следующую строку текста как часть исходного кода программы, что позволяет программисту вводить всю программу построчно с номерами строк перед каждым оператором. При перечислении на экране строки отображаются в порядке возрастания номера строки. Изменения можно внести в отображаемую строку исходного кода программы, переместив курсор на строку с помощью клавиш курсора и набрав текст на экране. Исходный код программы хранится внутри токенизированная форма, в которой зарезервированные слова заменяются однобайтовым токеном для экономии места и времени выполнения. Программы могут быть сохранены в компактной токенизированной форме или, при необходимости, в виде DOS ASCII. текстовых файлов [6] которые можно просматривать и редактировать с помощью других программ. Как и большинство других приложений DOS, IBM BASIC представляет собой программу текстового режима и не имеет функций для окон, значков, поддержки мыши или редактирования вырезанием и вставкой.
Наследие
[ редактировать ]GW-BASIC , выпущенный в 1983 году, представляет собой дисковый продукт Microsoft, который распространялся на компьютерах с MS-DOS, отличных от IBM , и поддерживает все графические режимы и функции BASICA на компьютерах, на которых нет IBM Cassette BASIC.
Преемником BASICA для версий MS-DOS и PC DOS, выпуск которого сейчас прекращен, является QBasic , выпущенный в 1991 году. Это урезанная версия компилятора Microsoft QuickBASIC : QBasic является интерпретатором и не может компилировать исходные файлы, в то время как QuickBASIC может компилировать и сохраните программы в формате исполняемого файла .EXE. QuickBASIC также включает в себя некоторые расширенные языковые операторы и функции (в основном связанные с интерфейсом ОС и низкоуровневым программированием на машинном языке), поддерживает многомодульные программы и включает расширенные функции отладки, которые отсутствуют в QBASIC.
Ссылки
[ редактировать ]- ^ Карран, Лоуренс Дж.; Шуфорд, Ричард С. (ноябрь 1983 г.). «Эстридж от IBM» . БАЙТ . стр. 88–97 . Проверено 19 марта 2016 г.
- ^ Jump up to: а б Уильямс, Грегг (январь 1982 г.). «Более пристальный взгляд на персональный компьютер IBM» . БАЙТ . п. 36 . Проверено 19 октября 2013 г.
- ^ Дамке, Марк (январь 1983 г.). «Портативный компьютер Compaq» . БАЙТ . стр. 30–36 . Проверено 27 июля 2013 г.
- ^ Отзывы читателей: Версии IBM BASIC , Compute! Журнал , № 78, ноябрь 1986 г., с. 8, получено 23 декабря 2011 г.
- ^ IBM. Информационное письмо о картриджах PCjr . 1 ноября 1983 г. ( [1] ).
- ^ Текстовые файлы DOS завершают каждую строку парой символов CR (возврат каретки, ASCII 13) и LF (перевод строки, ASCII 10) в указанном порядке.
Внешние ссылки
[ редактировать ]- Краткая история развития BASIC www.phys.uu.nl/~bergmann/history.html (в архиве)
- PCE IBM PC Emulator — эмулирует IBM Cassette BASIC и IBM Cassette Interface с подключенным кассетным накопителем стороннего производителя.
- POPBASIC и RUNBASIC, которые вызывают и копируют IBM Cassette BASIC.