Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Заявление BASICODE « Эсперанто для компьютеров» из восточногерманского издания Radio fernsehen elektronik .

BASICODE был компьютерным проектом, предназначенным для создания единого стандарта для языка программирования BASIC . BASIC был доступен на многих популярных домашних компьютерах , но было бесчисленное множество вариантов, которые были в основном несовместимы друг с другом. Проект был инициирован в 1980 году радиопрограммой Hobbyscoop голландской вещательной организации Nederlandse Omroep Stichting (NOS).

Базовая реализация представляла собой зависящие от архитектуры служебные приложения, которые выполняли вызовы подпрограмм для текста, звука и звука, определенных в языковом стандарте BASICODE, в соответствии с возможностями рассматриваемого компьютера. Эти приложения, называемые Bascoders , также позволяли обмениваться данными и программами на различных компьютерных платформах, определяя формат данных для компакт-кассет , которые регулярно использовались в качестве носителей информации в 1980-х годах. Программа BASICODE, хранящаяся на кассете, может быть загружена и запущена на любом компьютере, поддерживающем этот язык. По этой причине BASICODE часто называли « эсперанто для компьютеров».

BASICODE [ править ]

Ситуация начала 80-х [ править ]

Коммодор 64
Atari 800 XL

С конца 1970-х до конца 1980-х домашние компьютеры на базе 8-битных процессоров были очень популярны. Среди наиболее известных моделей были TRS-80 от Tandy , PET 2001 , VIC-20 , C64 , C128 и Plus / 4 от Commodore , Atari 400/800 (XL / XE) , компьютеры Sinclair Research ( ZX80 , ZX81 , ZX Spectrum ) и семейство KC85 популярной в германской Демократической Республике . У всех этих компьютеров был ЦПтипа MOS Technology 6502 или Zilog Z80 , от 16 до 64 килобайт ОЗУ , разъемы для кассетного привода или встроенного для хранения данных и, наконец, интерпретатор BASIC, который обычно хранился в ПЗУ . Плоская кривая обучения BASIC, который был разработан с учетом новичков в программировании, и мгновенная доступность языка на всех этих компьютерах привели к тому, что многие пользователи писали и делились своими собственными программами.

Проблема заключалась в том, что совместное использование программ и данных на компьютерах разных производителей было затруднено, потому что различные диалекты BASIC были полностью несовместимы в некоторых областях. Они использовали разные команды BASIC для выполнения одного и того же действия (например, очистку экрана, рисование пикселя или воспроизведение звука), так что программа BASIC, написанная для C64, не работала на Atari XL без изменений, и наоборот. Другая трудность заключалась в том, что, хотя эти компьютеры были похожи, они все же различались по ключевым аппаратным аспектам, таким как разрешение экрана, доступная цветовая палитра или возможности звука. Наконец, форматы данных, используемые для хранения данных на кассете, также были несовместимы.

Первый стандарт [ править ]

Sinclair ZX Spectrum

Примерно в 1980 году голландская телекомпания NOS начала передавать компьютерные программы по радио. Поскольку программы и данные хранились в виде аудио на компактных кассетах, такую ​​трансляцию можно было записать на ленту и позже загрузить в компьютер. Однако из-за проблем, упомянутых ранее, программу пришлось адаптировать практически ко всем популярным типам компьютеров, а также многократно транслировать. Поскольку компактная кассета имеет очень низкую плотность данных по сравнению с сегодняшними носителями данных, запись программ заняла довольно много времени, и только ограниченное количество программ могло транслироваться за одно шоу. Так что дополнительная трансляция разных версий одних и тех же программ была большим неудобством.

В 1982 году руководство NOS решило разработать единый формат данных. Приложение Bascoder , предназначенное для каждой модели компьютера, управляло вызовом и хранением программ и данных в этом унифицированном формате с ленты. Баскодеры также транслировались NOS, но их также можно было купить у NOS на кассете и поделиться ими между друзьями и знакомыми. Формат, который был очень хорошо защищен от помех, мог быть прочитан и записан всем популярным домашним компьютерным оборудованием. Устойчивость формата также сделала возможным вещание с помощью средневолнового радио, что увеличило диапазон и, в свою очередь, количество потенциальных пользователей. Например, данные, передаваемые голландской радиостанцией Hilversum, могут приниматься на большей части территории Германской Демократической Республики..

BASICODE 2 [ править ]

ZX81
Яблоко II

Стандарт решил одну из вышеупомянутых проблем - несовместимые форматы данных. Однако программы все еще необходимо было адаптировать к БЕЙСИК-диалекту и возможностям оборудования каждого компьютера. Ограничение программ только использованием инструкций, общих для всех диалектов, означало большие ограничения с точки зрения функциональности, например, полное воздержание от использования графики и звука и только неудобные методы ввода данных с клавиатуры и управления выводом символов на экран. По этой причине в 1984 году был создан расширенный стандарт BASICODE 2. Bascoders, использующие этот стандарт, не только содержат процедуры для ввода и вывода данных на ленту. В дополнение к набору из примерно 50 команд, функций и операторов BASIC, общих для всех диалектов BASIC,стандарт языка BASICODE 2 определил библиотеку подпрограмм, которые имитировали одни и те же возможности на всех поддерживаемых компьютерах.

Для этого все программные строки ниже 1000 были зарезервированы для Bascoder, а программы BASICODE могли начинаться только со строки с номером 1000. Подпрограммы Bascoder в строках ниже 1000 были вызваны с помощью GOSUB.команда. Необходимые аргументы были переданы Bascoder с использованием специальных предопределенных переменных, которые были зарезервированы для использования Bascoder. Стандарт содержал ряд дополнительных правил, которые были необходимы из-за ограничений некоторых моделей компьютеров. Например, на ZX-81 строка кода могла содержать только одну команду BASIC, поведение, которое почти не разделял ни один другой компьютер. На компьютере серии KC длина строки кода не может превышать 60 символов. Эти ограничения должны были применяться ко всем программам BASICODE, чтобы гарантировать независимость от платформы, потому что Bascoder интерпретировался тем же компьютерным интерпретатором BASIC, что и сама программа BASICODE.

Таким образом, Bascoders загружались на различные компьютеры как обычные программы и впоследствии обеспечивали дополнительные процедуры для общего стандарта и кассетного ввода-вывода. Программы, написанные на BASICODE, можно было использовать только после загрузки и запуска Bascoder. Однако на некоторых компьютерах программы BASICODE могут быть объединены с подпрограммами Bascoders и сохранены в собственном формате данных. Полученная программа больше не была независимой от платформы, но из-за более высокой плотности данных большинства собственных форматов ее можно было загружать намного быстрее, чем ту же программу в формате BASICODE. Кроме того, поскольку для запуска программы не было необходимости загружать весь Bascoder, во время выполнения оставалось доступным больше оперативной памяти.

Существовали BASICODE 2 Bascoders для Exidy Sorcerer , Color Genie , Commodore PET , VIC-20 , C64 , Amiga , Sinclair ZX81 , ZX Spectrum , QL , Acorn Atom , BBC Micro , Electron , Tandy TRS-80 , MSX , Oric Atmos , P2000T , Grundy NewBrain , Amstrad CPC , IBM PC , Apple II , Texas Instruments TI-99 / 4A ,Mattel Aquarius и другие. Кроме того, опытные пользователи могли написать свой собственный Bascoder для выбранной ими системы, поскольку языковой стандарт и формат данных были открытыми и хорошо документированными. Стандарт BASICODE 2 сделал возможной разработку платформенно-независимых программ с расширенными (на то время) возможностями. Кроме того, BASICODE использовался для передачи и обмена такой информацией, как новости компьютерной сцены, по радио в форме так называемых «журналов». Таким же образом были переданы учебник по кодированию BASICODE и другая документация.

BASICODE 3 / 3C [ править ]

В 1986 году был разработан новый стандарт BASICODE 3. Наиболее важными дополнениями были процедуры для простой монохромной графики, чтения и записи данных из программ и вывода звука. BASICODE 3 сделал BASICODE популярным на компьютерной сцене ГДР, и с 1989 года программы BASICODE передавались по радио по всей ГДР. Также была издана книга, в которую вошли виниловые пластинки с баскодерами для всех компьютеров, распространенных в ГДР. Последняя версия BASICODE с цветной графикой была выпущена как BASICODE 3C в 1991 году.

Конец BASICODE [ править ]

Примерно с 1990 года популярность BASICODE быстро снизилась из-за появления 16- и 32-разрядных компьютеров, особенно вариантов IBM-PC и совместимых систем. Несмотря на то, что для этих машин были Bascoders, BASICODE был слишком ограничен, чтобы использовать ресурсы, предоставляемые компьютерами того поколения. Кроме того, из-за гораздо меньшие число общих архитектур в 16- и 32-битной эре, основная причина развития и использование BASICODE стала спорной. По мере того, как аппаратное и программное обеспечение новых систем становилось все более и более сложным, большинство пользователей перестали или не хотели писать программы. Распространение графических пользовательских интерфейсов привело к падению популярности 8-битных компьютеров, а следовательно, и BASICODE.

Преемник государственного вещателя ГДР, Deutschlandsender Kultur (который позже стал частью нового Deutschlandradio ), продолжал транслировать программы BASICODE примерно до 1992 года. Запланированный стандарт под названием BASICODE 4 так и не стал реальностью, потому что NOS прекратил поддержку проекта вскоре после BASICODE. Был выпущен 3C. BASICODE по-прежнему используется энтузиастами, в частности фанатами 8-битных компьютеров, для ностальгической ценности, но не имеет никакого практического значения.

Историческое значение [ править ]

BASICODE был ранней попыткой создания стандарта для обмена программами и данными между несовместимыми архитектурами домашних компьютеров. Это примерно современно стандарту MSX, разработанному Microsoft , который определяет общую аппаратную платформу в дополнение к общему диалекту BASIC. Эти компьютеры продавались несколькими компаниями и напрямую конкурировали с другими популярными домашними компьютерами. MSX была успешна в основном на внутренних рынках производителей, например в Японии , Южной Корее , Нидерландах и Бразилии.. В отличие от MSX, BASICODE определял не аппаратное обеспечение, а языковой стандарт для языка программирования BASIC, который был почти повсеместным на домашних компьютерах, плюс формат данных для компакт-кассет, который можно было читать и записывать на всех компьютерах, для которых был доступен BASICODE. В результате реализация BASICODE зависела исключительно от дополнительного программного обеспечения и, таким образом, не ограничивалась компьютерами конкретных производителей. Установленная база из BASICODE трудно оценить, потому что оба Basicoders и программа , написанная в BASICODE были свободно доступны. Bascoder стоял почти на каждом домашнем компьютере, проданном в то время. С коммерческой точки зрения, BASICODE не имел никакого значения, потому что он всегда распространялся бесплатно.

Следует отметить, что BASICODE изначально не мог использовать возможности хост-компьютеров в полной мере. Стандарт языка, определенный BASICODE, был наименьшим общим знаменателем всех соответствующих компьютерных систем. От этой концепции частично отказались только с BASICODE3 / 3C, поскольку некоторые компьютеры или варианты компьютеров, такие как ZX80 / ZX81 и KC87, не поддерживали графику и цвет, а новые разделы BASICODE, использующие эти возможности, на них не могли использоваться. BASICODE явно уступал программам, написанным на "родном" BASIC или машинном коде, особенно для приложений, которые полагались на время, графику или звук, например видеоигры.. Сильные стороны BASICODE были в области разработки приложений, программного обеспечения для обучения и обмена данными. Формат BASICODE также использовался для программ на языке Pascal . Паскаль был гораздо более согласованным языком во всех системах, но компиляторы были доступны только для очень немногих типов домашних компьютеров.

Базовая концепция BASICODE, которая представляет собой определение языкового стандарта для независимой от платформы разработки программного обеспечения и реализацию указанного стандарта в качестве системно-зависимых сред выполнения (Bascoder), позже была пересмотрена в языке программирования Java в форме операционной системы. -специфические виртуальные машины Java, которые выполняют программы Java. Кроме того, распределение данных и информации в формате данных BASICODE напоминает текущие типы документов, не зависящие от платформы, такие как Portable Document Format (PDF) и необходимые ему приложения для чтения PDF.

Формат данных BASICODE [ править ]

Компактная аудиокассета BASICODE, типичный носитель данных BASICODE .

В формате BASICODE запись программ аналогична записи данных. Итак, при записи программ команды читаются и записываются не в виде однобайтовых единиц ( токенов ), а посимвольно.

Блок данных начинается с символа 02 (STX, начало текста) и заканчивается символом 03 (ETX, конец текста). После ETX передается контрольный байт, составленный из предыдущих байтов, включая STX и ETX, путем двоичного сложения (XOR). Символ 0D (десятичное 13) отмечает конец строки во время передачи. Файлы данных, созданные программами, могут использовать все символы в качестве данных и не должны содержать управляющих символов. Они читаются и записываются блоками по 1024 байта.

Каждый байт передается в последовательности «1 стартовый бит - 8 бит данных - 2 стоповых бита». Биты данных отправляются первым с наименьшим значащим битом. Самый старший бит передается в инвертированном виде и всегда равен 0 (передается как 1), поскольку BASICODE использует только символы ASCII . Таким образом, другой способ описать последовательность передачи - «1 стартовый бит - 7 бит данных - 3 стоповых бита». Результирующая избыточность предназначена для максимальной совместимости с различными компьютерами.

Для аудиосигналов используются прямоугольные волны в форме волны 1200 Гц для бита «0» и двух волн 2400 Гц для бита «1», что дает время 1/1200 секунды для каждого бита. Пауза более 1/1800 секунды между волнами отмечает начало байта, делая следующую волну стартовым битом. После стартового бита и перед восемью битами данных следует еще одна пауза продолжительностью не менее 1/1800 секунды. Сигнал 2400 Гц длительностью пять секунд отмечает начало передачи и используется для синхронизации программы чтения. В конце передачи отправляется сигнал 2400 Гц продолжительностью одна секунда.

Теоретическая скорость передачи данных этого формата составляет 1200 бит в секунду. Учитывая передачу трех дополнительных битов на байт данных и паузы до и после стартового бита, это приводит к полезной скорости передачи данных 102 байта в секунду и примерно 6 килобайт в минуту.

Декодирование аудиокассет [ править ]

На современном компьютере аудиокассеты Basicode можно декодировать с помощью минимодема , свободно доступного программного модема. Если кассета была преобразована в файл wav с именем basicode.wav , следующая команда декодирует ее в соответствующие байты данных в файл с именем basicode.txt .

Minimodem --rx 1200 -S 1200 -M 2400 --startbits 1-7 --stopbits 3 -f basicode.wav> basicode.txt

См. Также [ править ]

  • Уровень аппаратной абстракции
  • Библиотека (информатика)
  • Виртуальная машина
  • Стандарт Канзас-Сити

Дальнейшее чтение [ править ]

  • (на немецком языке) Михаэль Виганд, Манфред Филлинджер : БАЗИКОД. Mit Programmkassette. Ravensburger Buchverlag, Равенсбург 1986, ISBN  3-473-44010-8
  • (на голландском языке) Hermine Bakker, Jaques Haubrich (авторы), Stichting BASICODE (издатель): Het BASICODE-3 boek. 3. Auflage. Kluwer Technische Boeken BV, Девентер / Антверпен 1988, ISBN 90-201-2111-1 
  • (на немецком языке) Хорст Фёльц: Basicode mit Programmen auf Schallplatte für Heimcomputer. Verlag Technik, Берлин 1990, ISBN 3-341-00895-0 

Внешние ссылки [ править ]

  • (на голландском) Официальный голландский Hobbyscoop-сайт , первоначальная группа разработчиков BASICODE
  • BASICODE: пример голландского компьютерного фольклора - Историческая справка
  • (на немецком языке) BasiCode - Программное обеспечение для всех - Информация об истории и программировании
  • BASICODE: все еще активен в электронной группе Yahoo
  • загружаемые изображения ленты загружаются с разрешения Hobbyscoop
  • Коллекция программ BASICODE различных авторов Различные программы BASICODE