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

User Tag List

Страница 3 из 15 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 143

Тема: Адаптация программ к системе +3DOS

  1. #21
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати, не знаю может где и была ссылка, но ведь есть сайт с образами

    http://www.tzxvault.org/disks.htm

    Довольно много игр. и на Wos тоже немало...[COLOR="Silver"]

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  2. #22
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    и на Wos тоже немало
    Понимаешь, само по себе наличие образов дисков для +3 ДОс еще ничего не значит. Если почитаешь внимательно тему то поймешь почему.
    Возьми тот же WOS. Образы сброшены с оригинальных дисков, каталог на них не просматривается, так как они защищены. Следовательно, скопировать на другой образ диска ты ничего не можешь, и что самое главное, перенеся той утилитой, про которую я писал, на реальный диск, ты не сможешь запустить игру на реальном Спектруме, он сбрасывает. Утилита переносит только нормально организованный диск без всяких препонов и защит. Возможно, есть утилиты, которые могут корректно переносить и такие образы, раз их в образы загнали, значит можно и обратно... Но я таких утилит не нашел. Да и если найти, все рано это не решает проблему, хотца свободы, чтобы как на TR-DOS были диски с кучей игр, чтобы можно было перекидывать туда сюда. Тем более что есть поддержка полноценного объема 706 кб...
    В этом вся проблема. На WOS 80, а может 90 процентов - оригинальные образы с защитой, кроме того, не все любимые игры там есть, а скорее есть лишь немногие, на +3 дисках шлепали новые игры, весь любимый нами объем программ на тапках, лишь немногие хиты были зарелизены на +3 дисках... В инете я находил разные сайты с образами и до этих ваших ссылок, но, как правило, сразу про них забывал из-за того, что там нет известных программ (любимых) и нет абсолютной четкости файловой системы, все замуровано, запрятано, защищено.

    То, что я выше привел - эта ссылка качественно отличается от того, что я видел до этого. Там реально было адаптировано и сделано все по человечески для нормально работы с файлами игр. Там есть свобода пользования всем содержимым.

    В этом суть адаптации, которую я предлагаю.

    А если уж юзаться просто спеком каким-нибудь... так это и эмулятора хватит.

    Я стремлюсь к нормальной коллекции ходовых игр, адаптированных для +3, чтобы было все тоже, что и на TR-DOS, только лучше и удобнее. Чтобы был старый добрый спек с дисководом и с нормальным доступом к файлам. Я не особо "за" винчестер, так как теряется дух Спектрума, для меня Спектрум - Спектрум с дисководом не более. Хочется реально воспринимать идеалы минувшего .
    Последний раз редактировалось Addison; 28.11.2009 в 10:34.

  3. #23
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не так давно пробовал на эмуляторе по break остановить загрузку образа... не получилось. Как в командную стоку +3DOS попасть?

  4. #24
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На сайте wos есть документация. В т.ч. фирменное описание +3 от Амстрада. Там есть и user manual и в нём же некое подобие инструкции для программистов. И порт 1FFD описан и системные вызовы +3DOS и содержимое страниц ПЗУ, что и где там сидит. Формат дискет логический и физический тоже там есть. Написано там, так же, что есть "обычные" и "загрузочные" дискеты. В загрузочной есть некий загрузчик который не является файлом, а что-то на типа boot-сектора, обнаружив который +3Дос его считывает и запускает. Этот момент я детально исследовать не стал, но полагаю, что на дискете может и не быть файлов, а данные записаны в секторы диска подряд (т.н. raw mode). Что с ними делать? Дизассемблировать загрузчик, данные преобразовать в файлы. Сделать нормальный, обычный загрузчик и радоваться. Дизасм там несложный, вернее даже очень простой.

    вот сцылко: ftp://ftp.worldofspectrum.org/pub/si...um+3Manual.zip
    Последний раз редактировалось Vadim; 02.12.2009 в 06:40.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  5. #25
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Не так давно пробовал на эмуляторе по break остановить загрузку образа... не получилось. Как в командную стоку +3DOS попасть?
    Ты, наверное, про возврат в Бейсик при остановке загрузки?

    Здесь все тоже самое, что и в загрузчике для TR-DOS или TAP. Если загрузчик написан на бейсике, то ты можешь брейком его остановить, если он написан в коде, то брейк жать бестолку! Брейк - это "фишка" бейсика, она в нем штатно сидит для остановки бейсик программ.
    Поэтому рекомендую почитать литературу на виртуал TR-DOS сайте - две книжки:
    1. Адаптация программ к системе TR-DOS (Родионов).
    2. Тайники ZX и как установить вечную жизнь.

    Сразу хочу тебя разочаровать, большинство образов оригинальных дисков +3 не то чтобы имеют кодовый загрузчик, а в принципе защищены или нестандартно записаны или и то и другое вместе, поэтому даже посмотреть, что на диске лежит нельзя простым способом. Ковырять эти диски сложно. Они не переносятся штатными средствами. Например, у меня есть утилита для перегонки образов на реальный диск, так вот она перегоняет образ на диск, а игра после этого не работает... Почему? НЕ ЗНАЮ! Никто ничего про это не пишет, разбираться с этим долго.

    Я с этим не стал связываться, а решил использовать свой детский опыт общения со Спеком, а, следовательно, с TR-DOS и TAP. Там все вскрываю, затем перетаскиваю на обычный образ диска +3, который получается при штатном форматировании самим Спеком.


    Если конкретно по вопросу остановки загрузчика, то тут могу кратко сказать!

    1. Бейсик загрузчик останавливают путем замены оператора load на merge, это позволяет снять автостарт. Помогает только тогда, когда программист не покурочил длины строк в бейсике или еще чего.

    2. Кодовый загрузчик останавливается по точке прерывания, которая устанавливается в дебагере по адресу входа. Адрес входа это тот, который после загрузки кодового загрузчика записан - Randomize usr АДРЕС!

    В общем если ты новичок, то тебе придется очень сложно. Коцай загрузчики из местных коллекций TR-DOS.
    Последний раз редактировалось Addison; 06.12.2009 в 17:33.

  6. #26
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет, я далеко не новичок Скорее старичок. Просто +3DOS штука мною не исследованная.

  7. #27
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Нет, я далеко не новичок
    А ну тогда это просто "непривычка". +3DOS все тоже самое, там нет отличий особых, все подобно. А с дисками там невозможно работать через команды +3DOS, так как они нестандартно записаны.
    Последний раз редактировалось Addison; 06.12.2009 в 17:29.

  8. #28
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Клон Посмотреть сообщение
    вы же не вскрывали оригинальные диски с TR-DOS, думаете там все просто было записано?
    Клон. Список дисков в студию! Зачем сообщения удалил?

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  9. #29
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vadim, обсуждение во "Флейме" в соответствующей теме. Сразу её найдешь
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #30
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Адаптация серии игр DIZZY

    Задумал сделать коллекцию DIZZY на одном диске, причем, качественные версии с минимальными отличиями от оригинала. До этого я уже адаптировал части 1, 2, 3.5 и 5. Также в коллекции 107 игр западной адаптации на третьем диске имеются части 5,6 и7. То есть фактически не хватает только 3 и 4 части! Однако я все же решил все переделать. Мои адаптации были сделаны с образов tr-dos коллекций Волгодонска и Дупанова, эти версии оставляли желать лучшего, тогда я еще не отработал технологию переноса и выбирал варианты с легко раскрываемым загрузчиком, поэтому версии попались совсем кривые судя по вечным жизням, отсутствию музыки и т.п. Версии западной адаптации я толком не смотрел, но, судя по файлам игр, там тоже что-то делали, несколько непонятных блоков странного объема. В общем, я решил обратиться к образам кассет. Не уверен в их оригинальности, ксорок там нет, защиты как таковой тоже, просто применяется кодовый загрузчик, но что приятно, все заставки оригинальные, одним стандартным файлом 16384,6912, сама игра идет одним большим блоком, плюс один музыкальный блок, кроме соответственно первой части, так как там музыки АУ не было. Просмотр кода показал, что ничего лишнего там нет, все стройно и четко, посему считаю, что на этих тапках оригинальные образы кассет, а если и не совсем оригинальные, то с корректно снятой защитой и аккуратно структурированные.

    DIZZY1

    В теме Slider’а уже было обсуждение по поводу проблемы не запуска этой части из под режима 128к. Я не буду сильно повторяться, скажу только то, что проблема в затирании системных переменных основным кодом игры. Существует множество способов решения этой проблемы, но я преследовал цель адаптировать как можно ближе к оригиналу, то есть хотел сохранить, как загружаемы блоки в исходном виде, так и те адреса, куда они грузятся, и произвести только минимальные доработки, без которых просто игра не пойдет в системе +3. В общем, я изменил только кодовый загрузчик, соответственно поменял процедуры чтения с ленты на процедуры чтения с диска и для обхода затирания системных переменных 128к загрузил кодовый загрузчик в нормальные адреса ОЗУ выше 23755. Однако, как в случае ленточной версии просто перенести загрузчик в системные переменные в машинном коде уже не получилось, так как процедуры +3 DOS в отличие от процедур ленты используют эти переменные. Поэтому я по максимуму сделал все в нормальных адресах ОЗУ: инициализацию ДОС, включение мотора, открытие файла для чтения, а уже непосредственно чтение и выключение мотора произвел из адресов системных переменных! К счастью процедура чтения файла эти переменные, которые затираются, не использует.
    В итоге получилась качественная версия для +3 DOS с сохранение оригинальных блоков (картинки и самой игры) с изменением только загрузчика, что объективно и логично при адаптации.

    DIZZY2

    С этой частью пришлось повозиться. Она в отличие от всех других просто отказывалась работать в системе 128к в варианте ZX+3, даже при загрузке с тапки. И если первая часть глючила в любом ZX, для нее проблемой был режим 128к, то здесь глюк возникал только в системе +3. Причем если грузить с тапки в системе +3 в режиме 48к без музыки АУ все работало, как часы!
    Долгие и кропотливые разбирательства позволили установить, что причиной этому есть переделка ПЗУ (банк 48к). Процедура RST38 была изменена! После ее выполнения банк памяти устанавливается в соответствие с переменной BANK_M. В стандартной синклеровской прошивке этого не было. Сделано это из-за того, что для +3DOS заюзана 7-я страница и ее периодически нужно включать, когда отрабатывается процедура +3DOS в бейсике. Поэтому если в игре банк памяти переключается некорректно (без сохранения содержимого порта 7FFDh в переменной BANK_M), то при возникновении прерывания первого рода IM1 отрабатывает процедура RST38 и меняет банк памяти на тот, который записан в переменной BANK_M. В случае DIZZY2 происходит несанкционированное переключение банка 6, куда подгружена музыка, на банк 0, где расположен основной код игр. Это приводит к зависанию в самом начале при воспроизведении приветственного крика.
    Решить эту проблему можно. Если делать это в лоб, то, наверное, нужно в игре, где щелкаются банки добавить сохранение текущей настройки регистра 7FFDh в системной переменной BANK_M. Сделать это не так просто, нужно курочить код, делать выноски искать свободные места, причем переключений много и структура игрушки мне не известна, да и решение будет частным только для этой игры. А ведь наверняка такая проблема может возникнуть и в других играх!
    Я придумал очень остроумное и хорошее решение!
    Вот часть процедуры RST38, в которой происходит глюк:

    3873h
    BIT 4,(5C3Bh)
    JR Z,387Ch
    CALL 387Fh
    Последняя команда и переключает это банк. Суть в том, что если 4-й флаг системы бейсик включен, то происходит переключения банка на 7-й и декремент ячейки в нем по адресу E600h – это, скорее всего, какая-то переменная +3DOS, которая создается в 7-ом банке при инициализации +3DOS. Но для функционирования игры это не нужно, поэтому в самом конце загрузки, когда +3DOS больше не будет использоваться, целесообразно сбросить 4-й флаг в системе бейсика, расположен он по адресу 5C3Bh. Исходно там содержится байт 221, при выключении 4-го бита будет 205!
    Таким образом, очередной артефакт +3DOS лечится в загрузчике перед финальным RANDOMIZE USR путем введения POKE 23611,205!!!

    Что касается остальной адаптации, то в отличие от оригинала все блоки я загрузил в бейсике в их оригинальные адреса, а не в машинном коде, так как это позволял адрес начала загрузки 24576 основного кодового блока. Подгрузка файла музыки в страницу 6 осуществил обычной процедурой LDIR в машинном коде, процедура предварительно подзагружается из файла с расширением ldr. Затем все затирается основным блоком игры, который грузится последним.


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

    DIZZY5 - побежден в ходе упорных и кровопролитных боёв.
    Вложения Вложения
    Последний раз редактировалось Addison; 22.12.2009 в 00:22.

Страница 3 из 15 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Адаптация текстового редактора
    от Raydac в разделе Софт
    Ответов: 1
    Последнее: 09.06.2008, 14:27
  2. Ответов: 75
    Последнее: 26.01.2006, 03:06
  3. Компилирование готовых программ
    от CityAceE в разделе Программирование
    Ответов: 3
    Последнее: 02.11.2005, 12:42
  4. TR-DOS -> 3DOS?
    от dhau в разделе Оси
    Ответов: 4
    Последнее: 02.02.2005, 16:29
  5. Тестирование программ
    от Vitamin в разделе Программирование
    Ответов: 5
    Последнее: 23.01.2005, 21:46

Ваши права

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