Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: Исходники журнала "Черная ворона"

  1. #1
    Member Аватар для Rene Sens
    Регистрация
    28.02.2005
    Адрес
    с. Трилiси, Украина
    Сообщений
    43
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Исходники журнала "Черная ворона"

    Вот решил я потрепать субжевые исходники, что были представлены автором этого журнала в шестом номере.

    И оказалось, что либо я туплю, либо тут что-то не так...

    Ну то, что Alasm 5.07 отказался понимать директивы вроде

    DD "maks..."
    DD "информация"

    это ладно, это можно исправить.

    Но объясните человеку, забывшему очень многое за минувшие 10 лет после ухода со Спектрума, каким образом может правильно пройти процедура ассемблирования, если значения меток даются в файлах, которые присоединяются к основному файлу, уже после того, как они были упомянуты.

    То есть, например, в файле BOPOHA.h, встречаем что-то вроде:

    LD (STEK),SP
    CALL INIT
    CALL PAGE

    а эти самые STEK, INIT, PAGE впервые встречаются в BOPOHA2 или BOPOHA3, которые подключаются после вышеприведенных команд.

    И естественно, дебаггинг выявляет, что на месте CALL INIT находится веселая команда CALL #0000.

    Так в чем прикол?
    Со Спектрумом с 1993 года!
    http://www.rene-sens.com

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если не ошибаюсь, переменные объявленные через EQU должны быть объявлены ДО использования, а вот если они объявлены как метки, то без разницы где. Ибо заполнение мест использования происходит после резолвинга метки. Так что call 0 - это весьма странно

    По поводу DD - это скорее всего следствие изменения формата файлов - похоже, что ранее коду соответствовло DEFM, а в новом формате это уже DD

  4. #3
    Member Аватар для Rene Sens
    Регистрация
    28.02.2005
    Адрес
    с. Трилiси, Украина
    Сообщений
    43
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно, значит какие-то еще непонятки там присутствуют.

    Добавлено через 18 часов 42 минуты
    В результате дальнейших экспериментов установил, что проблемы дает файл BOPOHA4.h
    Если его подключение закомментить, то ассемблирование проходит на ура (не считая, конечно нераспознанных меток), и вместо CALL #0000 появляются правильные адреса процедур. И в общем-то даже журнал с некоторыми ухищрениями запускается и даже что-то пытается делать, однако ясно, что это не выход.

    А если не отключать вышепоименованный файл, то при его ассемблировании вываливается занятная синтаксическая ошибка:

    ADD IX,G

    Какое-то "г" короче. Что за "г"?
    И что характерно ничего подобного в тексте нет!

    Добавлено через 18 часов 58 минут
    Все! Разобрался! (Хотя вопросы остались)

    Дело в АЛАСМе. В версии 4.41 Stall Edition ассемблирование прошло без всяких проблем (если не считать того, что из основного файла процесс не пошел, а когда я загрузил на редактирование подключаемый файл, то ассемблирование стартовало ).
    Последний раз редактировалось Rene Sens; 21.12.2007 в 13:58. Причина: Добавлено сообщение
    Со Спектрумом с 1993 года!
    http://www.rene-sens.com

  5. #4
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько я помню пробелм с компилированием файлов с константами EQU заданными в подгружаемых файлах нет.
    Да, при первом проходе он оставляет call #0000, но после того как подсоединит нужный файл метки аттачит и меняет все эти Call на call #1234 если угодно.
    Я даже в GENS'е так делал. И подключение вроде всегда похже выполнял %)
    а с ADD IX,G очевидно глюк распаковки текста алясма...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 67
    Последнее: 21.04.2021, 14:51
  2. Ответов: 6
    Последнее: 20.11.2007, 11:29
  3. Ответов: 5
    Последнее: 20.06.2005, 00:10
  4. "Ремейк или плагиат?" или "про FIRE & ICE..."
    от antiplagiat в разделе Игры
    Ответов: 27
    Последнее: 04.06.2005, 02:55

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •