Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Atari Microsoft BASIC и Atari Microsoft BASIC II варианты на BASIC языка программирования были картридж ROM или флоппи - диска , упакованные версии Microsoft BASIC диалекта портирована на 8-битных Атари машин. Первая версия, выпущенная в 1981 году, требовала 32 КБ ОЗУ и поставлялась только на гибких дисках . Вторая версия, выпущенная в следующем году, содержала большую часть кода на картридже ROM с дополнительными функциями на дополнительной дискете.

Atari Microsoft BASIC был хорошо совместим с современными BASIC, такими как AppleSoft BASIC и Commodore BASIC , в отличие от их собственного Atari BASIC, который был несколько другим диалектом и несовместим во многих отношениях. Как и Atari BASIC, Atari Microsoft BASIC включает ряд новых команд и функций, позволяющих использовать преимущества платформы Atari. Они были лишь частично совместимы с аналогичными функциями Atari BASIC.

История [ править ]

Когда Microsoft перенесла свой исходный BASIC на базе Intel 8080 на 6502, им потребовалось время, чтобы расширить формат с плавающей запятой из исходного 32-битного формата до дополнительного 40-битного формата для повышения точности. Обе версии могут быть скомпилированы из одного и того же кода с помощью флагов компилятора; если использовался 32-битный формат, результирующий код имел длину чуть менее 8 кБ, если использовался 40-битный формат, он был ближе к 9 кБ.

8-битные домашние компьютеры Atari были разработаны со слотом для картриджа ROMКБ . Программисты Atari изо всех сил пытались уместить Microsoft BASIC в один картридж, а также добавляли функции, позволяющие использовать преимущества платформы. Летом 1978 года Atari решила лицензировать еще один BASIC, который будет готов к запуску системы в 1979 году, и это привело их к Shepardson Microsystems Inc. (SMI). SMI быстро решила, что это невозможно, и вместо этого предложила создать совершенно новую версию BASIC. Он стал Atari BASIC и был выпущен вместе с Atari 400 и 800 в 1979 году.

Atari продолжила работу с кодом MS и выпустила его версию на гибком диске в 1981 году. В дополнение к расширенному диапазону стандартных команд в MS по сравнению с Atari BASIC в новую версию добавлен ряд дополнительных команд для графики и звука, а также другие. особенности платформы. Он также включает целочисленные переменные и полный пакет целочисленных математических вычислений [a], который обеспечивает улучшенную производительность. Однако, поскольку для этого требовалось не менее 32 КБ ОЗУ и работало только с диска, оно никогда не пользовалось особой популярностью.

Во втором выпуске, Atari Microsoft BASIC II, большая часть кода была перенесена на расширенный картридж 16 КБ и на диск были помещены дополнительные 11 КБ более редко используемого кода, что означает, что многие программы, предназначенные для кроссплатформенного использования, теперь можно было запускать из только картридж. Выпущенный в 1982 году, BASIC II также практически не нашел применения.

Подробности [ править ]

Базовый интерпретатор был основан на том же 9-килобайтном коде MOS 6502, который также лег в основу Commodore BASIC и AppleSoft BASIC , и был в значительной степени совместим с ними. Ключевым аспектом этого была система обработки строк, которая была основана на том же коде, что и эти платформы. Напротив, в Atari BASIC использовалась совершенно другая система, которая обрабатывала строки как массивы символов и была несовместима с большинством других систем и не могла быть легко перенесена из них.

Он сохранил исходную математическую библиотеку с плавающей запятой в 40-битном формате, которая заменила печально известную медленную библиотеку в ПЗУ операционной системы и, таким образом, запускала математический код с той же скоростью, что и другие платформы, и намного быстрее, чем Atari BASIC. Он также включал дополнительный пакет целочисленных математических вычислений для повышения производительности. Целочисленная математическая система срабатывала, когда присваивалась целочисленная переменная или все литеральные значения были целыми числами. Если какой-либо из них не был истинным, целочисленные значения были бы преобразованы в числа с плавающей запятой, для расчета использовался код с плавающей запятой, а затем были преобразованы обратно в целые числа для хранения.

Еще одно заметное улучшение, связанное с производительностью, было связано с FOR...NEXTциклами. Atari BASIC выполнил это, поместив номер строки FORв стек выполнения, чтобы при обнаружении связанной NEXTстроки можно было найти, к какой строке вернуться. В отличие от этого, MS BASIC всегда помещал ячейку памяти этой строки в стек, что позволяло ему вернуться к нему FORбез необходимости перебирать всю программу в поисках соответствующей строки. Эта странность в Atari BASIC - одна из основных причин его низкой производительности, и поскольку это не было верно в Atari Microsoft BASIC, он обычно работал намного быстрее, чем Atari BASIC.

В отличие от Atari BASIC, который анализировал токенизированные целые строки при их вводе, MS BASIC только частично токенизировал исходный код.. При вводе строки номер строки был преобразован из ASCII в 16-разрядное целое число, первый оператор программы был токенизирован в однобайтовое значение, а затем оставшаяся часть строки была оставлена ​​в текстовом формате. У последнего символа был установлен старший бит, указывающий на конец строки. В зависимости от варианта использования полная разметка строки в Atari BASIC может привести к тому, что для хранения программы будет использоваться меньше памяти. Это различие также означало, что многие синтаксические ошибки будут замечены только во время выполнения в коде MS, в отличие от версии для Atari, где вся строка проверялась во время редактирования. Теоретически компиляция во время редактирования должна была сделать Atari BASIC намного быстрее, чем MS, которая повторно токенизует строку каждый раз, когда она встречается, но это преимущество было смыто другими проблемами производительности, упомянутыми выше.

MS BASIC не включал систему для ввода коротких форм ключевых слов, в отличие от Atari BASIC, которая позволяла сокращать их с точкой во время ввода. Когда программа была LISTотредактирована, ключевые слова будут расширены. Версия Commodore, которая добавляла завершение с помощью управляющих символов к тому же концу.

В Atari Microsoft BASIC добавлен ряд новых функций, позволяющих использовать преимущества платформы. Одно интересное дополнение заключается в том, AFTER (600) GOTO 100что ожидалось указанное количество «jiffies», 1/60 секунды, а затем выполнялось FOR. Он также включал, WAITкоторый вместо этого делал паузу в ожидании изменения адреса памяти перед переходом к следующей строке. WAITбыл частью самых ранних версий MS BASIC, но не получил широкого распространения.

Atari Microsoft BASIC включает большинство графических и звуковых команд от Atari BASIC. Как ни странно, оригинал DRAWTOбыл объединен с PLOTиспользованием необязательного PLOT...TO...формата. Это означает, что графический код для Atari BASIC был несовместим. В Atari Microsoft BASIC добавлен ряд дополнительных команд для обработки графики игрока / ракеты и пользовательских наборов символов , которые не были доступны в Atari BASIC.

Atari Microsoft BASIC поставляется в двух пакетах:

  • Дискета - CX8126
  • Картридж ПЗУ - RX8035. Поскольку картридж мог вмещать только 16 КБ, оставшиеся 11 КБ файла были включены на диск «расширения». Версия картриджа называлась Atari Microsoft BASIC II .

Хотя Microsoft BASIC более функционально, чем Atari BASIC, он никогда не пользовался такой популярностью, как Atari BASIC. Самыми большими проблемами были:

  • требуется увеличенная память (минимум 32 КБ)
  • требуется дисковод
  • производительность (быстрее, чем Atari BASIC, но медленнее, чем Turbo-Basic XL и BASIC XL )
  • не совместим с Atari BASIC
  • добавленная стоимость

Версия с картриджем устранила первые два требования, но для всех его функций требовался дисковод.

Заметки [ править ]

  1. ^ В отличие от версий MS BASIC от Commodore, которые включали целочисленные переменные, но выполняли математические вычисления путем преобразования значений в формат с плавающей запятой.

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

  • AtariAge Microsoft Basic II - RX8035
  • Antic Vol. 6, No. 2 BASIC Bonanza - Обзор Чарльза Черри
  • Atariwiki.org Atari Microsoft BASIC инструкция по эксплуатации