Редактор ассемблера Atari - Atari Assembler Editor

Редактор ассемблера Atari
Оригинальный автор (ы)Кэтлин О'Брайен
Разработчики)Shepardson Microsystems
изначальный выпуск1981; 39 лет назад (1981)
ПлатформаAtari 8-бит
Размер8 КБ
ТипАссемблер
ЛицензияПроприетарное программное обеспечение

Редактор ассемблера Atari (иногда пишется как Ассемблер / редактор Atari) это патрон -система разработки, используемая для редактирования, собрать, и отлаживать 6502 программы для Семейство 8-битных Atari домашних компьютеров. Его запрограммировала Кэтлин О'Брайен из Shepardson Microsystems, компания, написавшая Atari BASIC, а редактор ассемблера разделяет многие концепции дизайна с этим языком.

Время сборки медленное, что затрудняет использование картриджа для больших программ. В руководстве Atari рекомендовала редактор Assembler как инструмент для написания подпрограмм для ускорения Atari BASIC.[1] Atari Macro Assembler предлагался в качестве альтернативы с более высокой производительностью и более мощными функциями, такими как макросы, но он был дисковым, защищенный от копирования, и не включал редактор или отладчик. Несмотря на рекомендацию, коммерческое программное обеспечение было написано с использованием редактора Assembler, например, игры Восточный фронт (1941),[2] Галахад и Святой Грааль,[3] и Детская сетка.[4]

В исходный код к исходному редактору Ассемблера была лицензия на Оптимизированное системное программное обеспечение кто отправил EASMD на его основе.

История

Редактор ассемблера был написан Кэтлин О'Брайен из Shepardson Microsystems. Компания была нанята Atari, чтобы помочь Microsoft 6502 BASIC на 8 КБ ПЗУ, с чем боролись программисты Atari. Вместо этого Билл Уилкинсон предложил разработать совершенно новую версию BASIC, которая стала Atari BASIC.[5]

Пока Atari BASIC писал, в основном Пол Лотон, муж О'Брайена, О'Брайен работал над Assembler Editor.[5] Редактор Ассемблера был написан "вручную" путем ввода кодов в перфолента машина, пропуская ленту через EPROM горелки, а затем протестировать полученное ПЗУ в Atari 800. Картридж был закончен до Atari BASIC, и О'Брайен потратил некоторое время на работу над частями этого проекта.[5]

Как часть работы Шепардсона над Atari, ряд стандартных процедур был скопирован в Atari's Операционная система. К ним относятся плавающая точка подпрограммы, которые О'Брайен было поручено написать, хотя раньше она не работала над таким кодом.[5] Эти процедуры считались заведомо медленными, о чем часто писал Уилкинсон.[6]

подробности

Редактор Ассемблера двухходовой 6502 ассемблер в 8КБ картридж. И исходный, и объектный код могут находиться в памяти одновременно, что позволяет многократно редактировать, собирать и запускать полученный код без доступа к диску или ленточному накопителю.[7]

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

Картридж запускается в режиме EDIT. Программист входит в линии сборки источник в Atari BASIC -любить редактор. Исходный текст должен начинаться с номера строки, иначе он интерпретируется как команда. Как и Atari BASIC, Assembler Editor включает ВОЙТИ команда, которую можно использовать для объединения файлов в единый более крупный список программ. В отличие от Atari BASIC, редактор Assembler Editor включал ряд команд для автоматического создания разнесенных номеров строк, а также перенумерации строк и их удаления. в массовом порядке. У редактора также был НАЙТИ команда, которая оказалась очень полезной при работе с этикетками.[8]

Инструкции перечислены в том порядке, в котором они будут помещены в память. Отправная точка для инструкций указана с *= инструкция, поэтому, например, код, предназначенный для размещения на специальной "шестой странице", будет иметь префикс строки *= $0600.[9] Имена переменных могли быть назначены так, чтобы указывать на определенные места, и это часто сочеталось с приращением *= *+1 для прямого кодирования смещений в таблицы.[10]

Значения, следующие за инструкциями, обычно интерпретировались как «значение по этому адресу памяти», но фактическое числовое значение можно было предоставить как «непосредственный операнд», добавив к нему хеш, например LDA № 12, который загружает в аккумулятор десятичное значение 12. Шестнадцатеричное обозначалось знаком доллара, LDA №12 загрузит аккумулятор с 12 шестнадцатеричным или 18 десятичным числом. Косвенная адресация поддерживалась круглыми скобками; LDA (600 долларов США) будет использовать значения в ячейках $ 600, $ 601 для создания 16-разрядного адреса, а затем загрузить в аккумулятор значение, найденное в этом месте.[11]

Об ошибках сообщают в виде числовых кодов ошибок, всего около 50 таких кодов.[12]

Собрать

Код можно собрать в любой момент, набрав КАК М команду в редактор.[13]

Редактор ассемблера широко высмеивался как самый медленный ассемблер на платформе. Во многом это было связано с тем, что код редактора использовался совместно с Atari BASIC, который также был написан Shepardson Microsystems. Atari BASIC была известна очень медленными процедурами, используемыми для преобразования числовых констант в коде во внутреннее представление, которое использовало двоично-десятичный код (BCD) процедуры в Atari Операционная система. Это означало, что все числа, даже номера строк, нужно было преобразовать в BCD. Как ни странно, это также означало, что 1E2 был допустимым номером строки.[14]

Отлаживать

В отладчик действительно монитор, вводится с ОШИБКА команда.[15] В Икс команда возвращается в режим редактирования.[16] Отладчик позволяет просматривать и изменять регистры и места в памяти, трассировка кода, пошаговая и разборка.[17]

Пример кода

Ниже приведен код 6502 для Привет мир! написано для редактора ассемблера:

10 ; HELLO.ASM20 ; ---------30 ;40 ; ЭТА ПРОГРАММА СБОРКИ ATARI50 ; НАПЕЧАТ "ПРИВЕТ МИР"60 ; СООБЩЕНИЕ НА ЭКРАН70 ;0100 ; ИТ-директора0110 ; ===========0120     *=  $0340   ; НАЧАЛО IOCB0130 IOCB0140 ;0150 ICHID *= *+1    ; ОБРАБОТКА УСТРОЙСТВА0160 ICDNO *= *+1    ;НОМЕР УСТРОЙСТВА0170 ICCOM *= *+1    ; КОМАНДА В / В0180 ICSTA *= *+1    ; СОСТОЯНИЕ В / В0190 ICBAL *= *+1    ; LSB БУФЕРНЫЙ АДРЕС0200 ICBAH *= *+1    ; MSB АДРЕС БУФЕРА0210 ICPTL *= *+1    ; LSB PUT ROUTINE0220 ICPTH *= *+1    ; MSB PUT ROUTINE0230 ICBLL *= *+1    ; LSB BUFFER LEN0240 ICBLH *= *+1    ; MSB BUFFER LEN0250 ICAX1 *= *+1    ; ДОПОЛНИТЕЛЬНЫЙ БАЙТ 10260 ICAX2 *= *+1    ; ДОПОЛНИТЕЛЬНЫЙ БАЙТ 10270 ;0280 GETREC = 5      ; ПОЛУЧИТЬ ТЕКСТОВЫЙ ЗАПИСЬ0290 PUTREC = 9      ; ЗАПИСАТЬ ТЕКСТ0300 ;0310 CIOV =  456 долларов США   ; ВХОДНОЙ ВЕКТОР ИТ-директора0320 RUNAD = $ 02E0   ; ЗАПУСК АДРЕС0330 EOL   = $ 9 млрд     ;КОНЕЦ ЛИНИИ0340 ;0350 ; НАСТРОЙКА ДЛЯ ИТ-директора0360 ; -------------0370     *= $06000380 НАЧНИТЕ LDX #0    ; IOCB 00390     LDA #PUTREC ; ХОЧУ ВЫХОД0400     STA ICCOM,Икс ; ВЫПУСК CMD0410     LDA #MSG&255 ; НИЗКИЙ БАЙТ СООБЩЕНИЯ0420     STA ICBAL,Икс ; В ICBAL0430     LDA #MSG/256 ; СТАРШИЙ БАЙТ0440     STA ICBAH,Икс ; INTO ICBAH0450     LDA #0      ; ДЛИНА MSG0460     STA ICBLH,Икс ; СТАРШИЙ БАЙТ0470     LDA #$ FF    ; 255 ДЛИНА СИМВОЛА0480     STA ICBLL,Икс ; НИЗКИЙ БАЙТ0490 ;0500 ; ДЛЯ ПЕЧАТИ ПОЗВОНИТЬ0510 ; -----------------0520     JSR CIOV    ; ПОЗВОНИТЬ CIO0530     РТС         ; ВЫХОД В DOS0540 ;0550 ; НАШЕ СООБЩЕНИЕ0560 ; -----------0570 MSG .БАЙТ "ПРИВЕТ МИР!",EOL0580 ;0590 ; АДРЕС НАЧАЛЬНОГО ЗАПУСКА0600 ; ----------------0610     *=  RUNAD0620     .СЛОВО НАЧНИТЕ0630     .КОНЕЦ

Эти команды можно вводить интерактивно, чтобы собрать код, войти в отладчик, запустить программу, а затем выйти из отладчика, когда она будет завершена:

ASMBUGG600X

Наследие

Вскоре после того, как Шепардсон предоставил Atari Assembler Editor и Atari BASIC, его владелец Боб Шепардсон решил вернуться к тому, чтобы быть компанией, состоящей из одного человека.[18] О'Брайен, Лотон и Уилкинсон основали свою собственную компанию. Оптимизированное системное программное обеспечение (OSS), чтобы продолжить разработку продуктов Atari. Они лицензировали оригинал исходный код для BASIC, Assembler Editor и Atari DOS, который они написали коллективно.[19]

В 1981 году OSS выпустила улучшенную версию Assembler Editor, EASMD на дискета. EASMD был заменен на MAC / 65 в 1982 году. MAC / 65 был одним из самых быстрых сборщиков на платформе.[14] Большая часть улучшенной производительности MAC / 65 является результатом токенизации строк кода по мере их ввода - как в случае с Atari BASIC - для уменьшения объема работы, необходимой во время сборки.[7]

Редактор ассемблера по-прежнему доступен в Atari, и его популярность росла по мере того, как цена упала до АМЕРИКАНСКИЙ ДОЛЛАР$ 10 или 5 долларов во второй половине 1980-х годов.[20]

Смотрите также

использованная литература

Цитаты

  1. ^ Руководство 1981, п. 63.
  2. ^ Кроуфорд, Крис (1982). Исходный код для Восточного фронта (1941). Программа обмена ATARI.
  3. ^ Крокфорд, Дуглас (1982). Галахад и руководство к Святому Граалю (PDF). Программа обмена ATARI.
  4. ^ Эллисон, Питер (апрель 1984). «Интервью: Арти Арутюнян». ПЗУ (5): 8.
  5. ^ а б c d Интервью 2015.
  6. ^ Уилкинсон, Билл (февраль 1985). «INSIGHT: Atari». Вычислить!. п. 139.
  7. ^ а б Гаага 2009.
  8. ^ Руководство 1981, п. 15.
  9. ^ Руководство 1981, п. 7,31.
  10. ^ Руководство 1981, п. 31.
  11. ^ Руководство 1981, стр. 10-12.
  12. ^ Руководство 1981 С. 43-44.
  13. ^ Руководство 1981, п. 25.
  14. ^ а б Ветмор 1983, п. 29.
  15. ^ Руководство 1981, п. 35.
  16. ^ Руководство 1981, п. 41.
  17. ^ Руководство 1981 С. 35-41.
  18. ^ Уилкинсон 1982, п. vi.
  19. ^ Уилкинсон 1982, стр. vi-vii.
  20. ^ Рэтклифф, Мэтью (20 ноября 1989 г.). «Справочник редактора Atari Assembler».

Список используемой литературы

внешние ссылки