WikiDer > Турбо-Базовый XL
Эта статья нужны дополнительные цитаты для проверка. (Апрель 2020) (Узнайте, как и когда удалить этот шаблон сообщения) |
Начальный экран Turbo-BASIC XL 1.5 | |
Оригинальный автор (ы) | Фрэнк Островски |
---|---|
изначальный выпуск | Декабрь 1985 г. |
Написано в | 6502 сборка |
Платформа | Семейство 8-битных Atari |
Турбо-Базовый XL это расширенная версия BASIC язык программирования для Семейство 8-битных Atari домашних компьютеров. Это совместимый надмножество Atari BASIC это было встроено в большинство компьютеров Atari того времени.
Turbo-Basic XL значительно улучшает выполнение по сравнению с Atari BASIC. Программа Atari BASIC, загруженная в Turbo-BASIC, без внесенных изменений, обычно работает примерно в три раза быстрее. Турбо-базовый XL компилятор создавал двоичные исполняемые файлы, еще больше повышая производительность программы примерно в десять раз по сравнению с Atari BASIC. Turbo-Basic XL также включает расширенный редактор, поддержку именованных процедур, ПОКА ... В КОНЦЕ
и аналогичные блочные конструкции, а также добавлен доступ к базовому оборудованию, что, среди прочего, позволяло работать подключенным дисководы гибких дисков не выходя к ДОС.
Turbo-Basic XL был разработан Фрэнк Островски и опубликован в выпуске журнала за декабрь 1985 г. Немецкий компьютерный журнал Счастливый компьютер. Вскоре после этого была выпущена версия для моделей 400/800, известная как Фрост Базовый 1.4. Другие авторы также выпустили несколько модифицированных версий, работающих с разными системами DOS. Островский вскоре получил работу у GFA Systemtechnik GmbH (в то время известный как Интегральный гидравлик), где он адаптировал Turbo-Basic XL в GFA BASIC для Atari ST, который стал одним из самых популярных BASIC на этой платформе.
Фон
С момента своего выпуска в 1979 году 8-битное семейство обычно поставлялось с версией Atari BASIC на ПЗУ картридж, или встроены во внутренние ПЗУ на более поздних машинах. В этой версии BASIC был ряд пользовательских команд, которые позволяли частичный доступ к расширенным функциям системы, таким как графика и звук. Он был заведомо медленным и находился в самом конце списка БЕЙСИКОВ микрокомпьютера в оригинальной версии книги Дэвида Ала. Тест Creative Computing.[1]
Низкая производительность официального Atari BASIC привела к выбору сторонних БЕЙСИК-переводчики с лучшей производительностью или большим количеством команд. Среди них был официальный порт Microsoft BASIC продано Atari, несколько улучшенных версий выпущено Оптимизированное системное программное обеспечение, который написал оригинальный Atari BASIC по контракту, и многие другие. Также было несколько компиляторов Atari BASIC от различных поставщиков.
Turbo-Basic XL был поздним входом в этот список, впервые опубликованный в декабре 1985 г. программа для ввода текста. Он был уникален тем, что был доступен как в версии интерпретатора, так и в версии компилятора. Он включал код для использования преимуществ расширенной памяти, доступной на машинах серии XL, а затем серии XE. Это означало, что он не мог работать на исходных системах 400/800, что привело Островски к созданию порта, известного как Frost BASIC (сокращение от «Фрэнк Островски»), который был привязан к Atari DOS 2.0.
Команды, относящиеся к внутреннему диску, были привязаны к определенным версиям DOS. Стал доступен ряд портов на разные версии DOS.
Улучшения скорости
Наиболее примечательной особенностью Turbo-Basic была его резко увеличенная скорость; Немодифицированная программа Atari BASIC, загруженная в Turbo-Basic, обычно работает в три-пять раз быстрее, и преимущество в скорости улучшается по мере увеличения размера программы. Во многом это произошло из-за ряда улучшений известных проблем в исходном коде Atari BASIC.
В большинстве BASIC GOTO обрабатывался путем чтения соответствующего номера строки и последующего поиска этой строки кода в программе. В основанных на MS BASIC номера строк хранились как 16-битные целые числа и числовые константы в коде в их исходном формате ASCII. Когда строка вроде GOTO 1000
встретился, интерпретатор будет использовать специальный код для преобразования "1000" в 16-битный формат, а затем искать его. Atari BASIC работал по-другому, преобразовывая все числовые константы в 6-байтовый формат с плавающей точкой при вводе строки. Это означало, что «1000» больше не было в формате ASCII, и его нужно было преобразовать из формата с плавающей запятой в целочисленный. Код для этого не был оптимизирован и мог занимать до 3500 мс.
FOR ... NEXT петли - еще одна распространенная конструкция в программах на BASIC. В большинстве BASIC, когда часть FOR встречалась во время выполнения, ее место в памяти в исходном коде помещалось в стек вызовов чтобы он мог легко вернуться в это место при обнаружении связанного NEXT. По неизвестным причинам Atari BASIC поместила номер строки FOR в стек, а затем просмотрела весь код этой строки, когда встретила NEXT. Для программ со значительным зацикливанием, что часто случается в BASIC, это могло вызвать резкое снижение производительности.
Turbo-Basic реализовал свои циклы FOR с использованием адреса, как это было в случае с MS BASIC, и таким образом запускал циклы примерно с той же производительностью, что и MS. Затем он пошел дальше и значительно улучшил производительность GOTO. Номера строк были отправлены в хэш-функция это разбило их на блоки по 256 строк. Когда программа была введена, адрес первого из этих фрагментов сохранялся в таблице из 128 значений. Во время выполнения, когда был необходим поиск по номеру строки, он сначала выбирал ближайшее, но меньшее значение в таблице, извлекал адрес, а затем начинал сканирование строки с этой точки. Улучшение было наиболее заметным в более крупных программах, где время сканирования становилось все более дорогим, поэтому Turbo-Basic мог увеличить в 5 раз в более крупных программах.
Другой основной причиной плохой производительности Atari BASIC был очень медленный двоично-десятичный код (BCD) плавающая точка код. Библиотека, содержащаяся в отдельном 2k ROM и считающаяся частью Операционная система в отличие от самого BASIC, он был написан в спешке и никогда не оптимизировался. Некоторые из подпрограмм, особенно функции умножения и экспоненты, были намного медленнее, чем могли бы быть.
Turbo-Basic исправил это, включив собственную полную библиотеку с плавающей запятой, которая не только устранила многие из этих проблем, но и дополнительно оптимизировала код, развернув небольшие циклы. Для программ, которые широко использовали математику, новая библиотека привела к значительному повышению производительности, отправив Atari из нижней части списков тестов Ahl в верхнюю часть, опередив ряд машин, которые были намного быстрее в аппаратном обеспечении.
Новые возможности
Среди дополнительных функций Turbo-Basic XL, добавленных к ATARI BASIC, можно выделить следующие:
- повышенная звук и графика команды
- более гибкий Ввод / вывод команды, в том числе диск доступ
- структурное программирование конструкции
- просто отладка удобства
Рекомендации
- ^ Ахл, Дэвид (ноябрь 1983 г.). «Сравнительный тест». Творческие вычисления. п. 260.
- Фетцер, Рон (1985). Расширенная документация Turbo-BASIC XL (PDF).
внешняя ссылка
- 8-битные страницы Atari - Сканы Турбо-Базовый XL листинг и Компилятор Turbo-Basic XL список из Счастливый компьютер Журнал. Также перечисляются новые команды, добавленные к языку.
- Турбо-Базовый XL - Информация о Turbo-Basic XL, включая исходный код на atariwiki.org.