User Tag List

Показано с 1 по 10 из 1102

Тема: Emu80 v.4

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk
    А для формата MSX кроме подпрограмм ввода/вывода байта нужно еще перехватывать чтение и запись заголовков. Я пока не смотрел, как это сделано в ленинградском Мониторе, но думаю, что найти их адреса для перехвата также можно.
    Это не требуется. В ленинградском мониторе используется не высокоуровневый протокол MSX, т.е все те же служебные байты, заголовки и т.п. что есть в компьютере MSX. А лишь заменяется низкоуровневый формат. А протокол, т.е пилотон, синхробайт, байты D9, имя файла и т.п - всё остаётся как и ранее. Т.е можно также выводить и по W и по O и затем соответственно грузить по R или I.

    А на слух после нажатия на НР+F3 просто меняется звук, вместо шипа идет более приятный тональный сигнал. Но MSX двухчастотный формат несмотря на всю известность менее надёжный, чем двухфазный и ничуть не быстрее. Точнее при одной и той же скорости передачи MSX требует более высокого качества лентопротяга и ленты и вдвое большей полосы канала.

    Что меняется оттого, что одна подпрограмма вывода байта заменяется на другую подпрограмму вывода байта? Причём так можно менять на любой формат, в том числе и проводной программный и проводной аппаратный (это с ВВ51). А т.к точки входа LDBYTE/SVBYTE не меняются, то если перехватывать именно эти точки, то ничего больше делать не надо.

    Цитата Сообщение от Pyk
    загрузились все образцы wav-файлов как в формате по "I", так и по сбросу, кроме SP-COPY. Там какой-то свой формат записи - надо смотреть, почему не грузится
    Смотреть не надо... Точнее это бесполезно. Никогда по такому алгоритму эмуляции не загрузить программу защищённую от копирования. B2M кстати тоже нихрена не грузит, а вот проверьте на реале и убедитесь, что всё грузится.

    Там только первые блоки идут в стандартной кодировке. Первый блок первичный загрузчик грузится в экран и выводит мигающую надпись "DO NOT STOP TAPE !". Второй блок - это основной загрузчик, он тоже грузится ещё в двухфазной кодировке. А следующий блок идёт уже в двухчастотной кодировке, причём не в той же самой, что прошита в мониторе, а в вариации - на слух то же самое, но байты не грузятся стандартной подпрограммой. Обычно также используются ухищрения - типа загрузка кода в обратном порядке, т.е от старших адресов к младшим, с перестановкой байтов с шагом 2 или 4 и XOR-ом вводимых байтов с E6.

    Поэтому самОй SP-COPY её саму не скопировать. Этот копировщик берёт только двухфазный формат. Но он позволяет легко копировать примитивные защиты, что были в ходу в начальные годы. Защита была основана на том, что первый блок после загрузки и автостарта меняет константу ввода перед вводом второго блока и считает паузу до начала второго блока. Время паузы является ключом при декодировании второго блока. Это самая простая, но вполне эффективная защита и эмуляторы её тоже не берут.

    Такой формат никак не скопировать вручную. А SP-COPY делал идентичную копию таких программ. Он запоминал константы ввода для каждого блока и паузы между блоками. Но есть некопируемая разновидность этого метода, когда константа ввода меняется прямо в ходе загрузки, изменясь при вводе очередных 128-ми байтов плавно или по случайному закону.

    SP-COPY работает из экрана, отдавая под буфер ввода все 36 кб. А орионовская версия имеет буфер в 48 кб. Но гораздо круче копировщик работающий с электронным диском. Он грузит не в ОЗУ, а сразу во внешний эл.диск и позволяет копировать многоблочные программы любого размера.

    У меня было много защищённых от копирования программ СПЕЦИАЛИСТА, в т.числе и ценные. Они не сохранились, сохранились лишь те, к которым я имел авторский инсталятор. Так пропали адаптации ZX-игр. Инсталяторы тоже, кстати, нихрена не работают в эмуляторах, т.к в них не используются стандартные подпрограммы вывода.

    Цитата Сообщение от Pyk
    перехватывается подпрограмма ввода с клавиатуры с ожиданием нажатия - если ждем нажатия клавиши, подразумевается, что все прочитали или записали, и файл можно закрывать
    Это не позволит грузить многоблочные программы, т.к между загрузками блоков нет вызовов подпрограмм опроса клавиатуры (особенно C803, C81B ещё может быть для контроля на аборт), а программы написанные виртуозами не используют для опроса клавиш стандартные подпрограммы.
    Последний раз редактировалось barsik; 26.12.2017 в 09:03.

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

  3. #2

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Смотреть не надо... Точнее это бесполезно. Никогда по такому алгоритму эмуляции не загрузить программу защищённую от копирования.
    Почему не надо? Значит, что-то эмулируется недостаточно хорошо. Что в алгоритме эмуляции может мешать в случае считывания wav-файла, когда не используются никакие перехваты?


    Цитата Сообщение от barsik Посмотреть сообщение
    Это не позволит грузить многоблочные программы, т.к между загрузками блоков нет вызовов подпрограмм опроса клавиатуры (особенно C803, C81B ещё может быть для контроля на аборт), а программы написанные виртуозами не используют для опроса клавиш стандартные подпрограммы.
    Как раз наоборот, если для многоблочной программы записать все блоки в один файл, то он будет успешно грузиться (опрос клавиатуры вызывает закрытие файла). А вообще все предусмотреть наверное невозможно - для любого варианта реализации в эмуляторе перенаправления работы с магнитофоном в файл можно будет найти пример, на котором это работать не будет. Универсальный вариант - использование wav.

  4. #3

    Регистрация
    14.05.2013
    Адрес
    г. Москва
    Сообщений
    264
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Смотреть не надо... Точнее это бесполезно. Никогда по такому алгоритму эмуляции не загрузить программу защищённую от копирования. B2M кстати тоже нихрена не грузит, а вот проверьте на реале и убедитесь, что всё грузится.
    Можно wav с такой программой? Вообще не вижу чем загрузка на реале отличается от загрузки на эмуляторе...

  5. #4

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    uart, я так понимаю, что вот эти из архива "tape for check":
    SP-COPY (auto)' EXE.wav
    SP-COPY (auto) EXE.wav

    Не грузятся ни в моем эмуляторе, ни в твоем. С jet-set на первый взгляд проблем нет (у меня vmWare зависает в процессе загрузки).

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

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