1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Ассемблер i8080: уроки, практика, ПК-01

Тема в разделе "IBM PC-несовместимое", создана пользователем Zelya, 27 янв 2012.

  1. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Я весь асм (что в TASM, что в MASM) гонял через редактор PSPad, как и почти всё, что писалось на моей машине.

    http://www.pspad.com/ru/

    Подсветка синтаксиса (настраиваемая, конечно же), макросы, шаблоны для новых файлов.

    Можно отдельными командами компилировать и вызывать полученный файл, загружать его в отладчик.

    Конкретно в данном случае исходники можно подружить с такой хорошей штукой как Telemark Cross Assembler - у него есть таблица для 8085, она вполне подходит.

    http://home.comcast.net/~tasm/

    Настройки - Параметры подсветки - Компилятор Параметры: %Dir%%Name%%Ext% -b -i -85

    (-b - чтобы двоичный файл генерил, а не хексовый, -85 - нужная нам таблица инструкций)

    А вот как вызывать откомпилированную программу, я пока разобраться не смог. В качестве эмулятора можно прицепить MESS со львовским модулем (ромы у меня есть), но как из командной строки залить в него бинарник (и возможно ли это в принципе, я не знаю :().

    http://www.mamedev.org/release.html

    Тем не менее, подсветку синтаксиса я по таблице команд из руководства сделал, прикрепляю. Выглядеть будет примерно так:

    (как выглядит редактор)

    Правильно ли ассемблирует телемарковский софт, сказать не могу, но результат, на всякий случай, тоже цепляю.

    P.S. В справочнике, похоже, пропущена LXI D (11).

    http://lvovpc.ho.ua/files/i8080.html
     

    Вложения:

    • xonix.zip
      Размер файла:
      370 байт
      Просмотров:
      110
    • asm8085.zip
      Размер файла:
      436 байт
      Просмотров:
      129
    AndyFox, Zelya и Dimouse нравится это.
  2. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    AndyFox и A.P.$lasH нравится это.
  3. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Решение для запуска найдено - замечательный эмулятор от Дмитрия Целикова.

    http://bashkiria-2m.narod.ru/index/emul/0-8

    Работает из командной строки, опознаёт LVT-файлы и автоматом стартует эмулятор Львова.

    Таким образом, на компиляцию ставим батник, который запускает ассемблер и переименовывает OBJ в LVT, на запуск - эмулятор Целикова.

    Ctrl+F9 - ассемблирование
    F9 - запуск

    (Автоматическая загрузка программы)
    (Откомпилированный исходник от Zelya работает)

    P.S. Исходник брал из этого сообщения.
     
    AndyFox, Zelya и Bato-San нравится это.
  4. MetalliC

    MetalliC

    Регистрация:
    20 апр 2009
    Сообщения:
    698
    - переименовываем .obj в .lvt
    - стартуем эмулятор: mess.exe lviv
    - вводим комманду загрузки: BLOAD"",R (запятая находится на кнопке HOME, кавычки на SHIFT+2)
    - жмем Scroll Lock - включатся кнопки гуя эмулятора
    TAB - File Manager - Cassete - выбираем наш .lvt (вместо этого можно добавить в ком.строке -cass xonix.lvt)
    Tape Control - Play
    вроде всё

    если запускать с ключиком -debug - будет доступен встроенный отладчик, довольно удобный и навороченный
     
    AndyFox и A.P.$lasH нравится это.
  5. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    MetalliC, спасибо, просто это ведь для запуска после компиляции не самый лучший вариант. Мне нужно было сделать это напрямую, без BLOAD"",R.

    Не хотелось бы после каждой сборки набирать это заново.

    Эмулятор Целикова всё делает сам - эта команда, пусть и несколько картинно, со звуковыми спецэффектами, выполняется сама по себе, достаточно лишь указать львовский бинарник в командной строке.

    Т.е., даже систему он выбирает сам (Башкирия - мультисистемный эмулятор), но выбирает именно по расширению. Никаких проверок содержимого нет, хоть у львовских файлов и содержится свой уникальный идентификатор.

    Потому и OBJ не годится - приходится переименовывать.
     
    AndyFox нравится это.
  6. MetalliC

    MetalliC

    Регистрация:
    20 апр 2009
    Сообщения:
    698
    если для быстрой проверки то да, B2M поудобнее будет.
    в MESS просто мощный дебагер, и если выяснится что компил не работает выяснять отчего/почему/где будет удобнее имхо в нём.
     
    A.P.$lasH нравится это.
  7. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    [​IMG]

    У Целикова с этим тоже всё в порядке :yes:

    Какой он у MESS, я пока не смотрел, посмотрю обязательно. В любом случае, MESS можно подвесить на Alt+F9 - PSPad позволяет.
     
    AndyFox и MetalliC нравится это.
  8. MetalliC

    MetalliC

    Регистрация:
    20 апр 2009
    Сообщения:
    698
    ключевое слово было - мощный, с приблизительно такими возможностями.

    как эмулятор MESS конечно не самый удобный и точный (хотя это зависит от того какую именно железку эмулировать, есть такие что и лучше/точнее чем где-либо сделаны), но отладчик там имхо отличный.
     
    A.P.$lasH нравится это.
  9. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    MetalliC, о, ну это небо и земля, конечно. Буду иметь в виду, спасибо.

    И за коммиты в код MESS'а тоже спасибо, а то тут может и не знает никто, что в нём и ваш код имеется.

    А чем ассемблировать, можете что-нибудь интересное посоветовать?

    Я вот Telemark обнаружил, видел a85 Cross Compiler с исходниками и даже такую дичь как набор макросов к обычному TASM для генерации правильного бинарника, где каждая команда обёрнута в макрос, генерящий нужную последовательность через db .. ...
     
    AndyFox нравится это.
  10. MetalliC

    MetalliC

    Регистрация:
    20 апр 2009
    Сообщения:
    698
    да не за что, знает - не знает не в том цель :) просто хочется чтоб там ZX-Spectrum и его отечественные клоны нормально работали в MESS, но увы нынешнее МАМЕвское ядро не позволяет нормально эмулировать Z80 с задержками памяти...

    не знаю, ассемблерами не интересовался
     
    AndyFox нравится это.
  11. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Может, дизассемблировать? Могу предложить свою дремучую свистящую и пер... поделку. ПК-01 код "вычленяет" со средней сносностью.

    Я очень рад, что хоть кто-то скомпилил код из уроков. Не уже ли даже кому-то где-то что-то из них интересно? :) Если да, то тогда можем продолжить.
     
    AndyFox и A.P.$lasH нравится это.
  12. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Zelya, ну продолжать то однозначно надо ! Только уроки более компактно и структурировано делай, если не трудно. Что бы не было как в книгах по "Цы за 21 час" - "щас я вам расскажу что такое void и где он применяется" ... блаблабла на отвлечённые темы... и "ну, а теперь введите код программы урока и сами подумайте что это за void и зачем он вообще нужен !" Всё же только примерами применения объяснение не исчерпывается.
     
    AndyFox, A.P.$lasH и Zelya нравится это.
  13. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Именно ассемблировать - там набор инструкций простенький и хорошо документированный, поэтому дизасм этого добра я тоже написать могу, тут дело в другом - Telemark, невзирая на почтенный возраст, нельзя использовать без регистрации. Он не защищается, ничего не проверяет, просто пишет в документации, что автор считает использование незарегистрированной версии "дольше разумного срока, достаточного для оценки его возможностей" неэтичным.

    Это мой бзик, на самом деле. Просто интересно стало, неужели нет полностью бесплатных ассемблеров для 8080, причём чтобы консольный PE - хочется к редактору подключить. И они есть - тот же A85 с исходниками. Он и неплох, на самом деле, за одним минусом - если обнаружены ошибки, он в конце пишет их количество, а не перечень или хотя бы первую встретившуюся. Ну и в бинарник не компиляет - у него хексовый (текстовый) OBJ.

    Так-то Telemark вне конкуренции, особенно с поддержкой макросов. Например, так:

    Код:
    ;###############################################################################
    
    BEGIN           .equ    08000h
    LVIV_BINARY     .equ    0d0h
    
    PRT_CONTROL     .equ    0c2h
    
    BLACK           .equ    0
    
    VAR_COLOR       .equ    0be38h
    BIOS_CLS        .equ    0ebbch
    
                    .org    BEGIN - 16 - 6
    
    ;-------------------------------------------------------------------------------
    ; header
    
    sMagic          .db     "LVOV/2.0/"
    dbType          .db     LVIV_BINARY
    sName           .db     "______"
    
    dwStart         .dw     BEGIN
    dwEnd           .dw     end - 1
    dwEP            .dw     start
    
    ;-------------------------------------------------------------------------------
    ; macro
    
    #define mVideoOn               mvi      a, 0            \
                                   out      PRT_CONTROL
    
    #define mFillScreen(color)     mvi      a, color        \
                                   sta      VAR_COLOR       \
                                   call     BIOS_CLS
    
    #define mClearScreen           mFillScreen(BLACK)
    
    ;###############################################################################
    
    start:
            mVideoOn
            mClearScreen
    
    end:
            .end
    Ну, вы поняли идею.

    Очень интересно, очень. С удовольствием буду читать дальше, спасибо за них.
     
    AndyFox нравится это.
  14. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    ну это смотря с какой стороны подходить к вопросу...

    Порылся чутка в запасах и вот исходники, автор денег не просит:
    Посмотреть вложение i8080asm_11.zip
    компиляйте и пользуйтесь.

    А так же можно использовать ассемблеры для Z80,но там есть мааааленькая грабля на паре команд и префиксах.
    http://www.z80.info/z80sdt.htm#SDT_ASM_W32
     
    AndyFox нравится это.
  15. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Шашнов его под UNIX делал. Там под винду переписывать и переписывать, к сожалению.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление