У друга был заводской клон с изменённым шрифтом. Так что безобидность - она относительная.
- - - Добавлено - - -
Это если есть безглючная дисковая версия.
Вид для печати
Любые изменения ПЗУ чреваты. Я в свое время исследовал много программ на предмет того, почему они несовместимы с измененным ПЗУ. Доходило до смешного. В одной защите вызывалась процедура рисования линии из ПЗУ, и защита зависела от значения регистра R после отрисовки линии. При измененных алгоритмах рисования такая защита упадёт. В других программах проверялся обработчик NMI из ПЗУ, для защиты от взлома. Драйвера клавиатуры полагались на неизменное положение таблиц скан-кодов в ПЗУ. Кто-то шифровал программы, ксоря их с фрагментами ПЗУ. И так далее. В конце концов я пришел к выводу, что безопасных изменений в ПЗУ не бывает. Если нужно сохранить совместимость со всем софтом - то ни одного байта прошивки бейсика менять нельзя.
- - - Добавлено - - -
Я один из эстетов ленточной загрузки, было несколько игр с любимыми эффектами при загрузке. В эмуляторе наслаждался этими эффектами. А за годы своей "дисководной" жизни с реалом (1993-1997) грузил что-то с ленты только для переброски на диск.
При развлечениях с эмулятором главное - то, что не надо доставать и подключать, а потом прятать на место, магнитофон и кассеты.
Barmaley_m, цимес ещё и в том, что дешифрация адреса окна "включения" BDI, в оригинале (15360-15615) и отечественной кальке (15616-15871), отличалась
адрес окна отличался в версиях ранняя/поздняя, а не в оригинале/кальке
goodboy, возможно.
С отечественными вариантами схемы на "ранней" дешифрации, попросту не сталкивался. И тем не менее, сути это не меняет.
О возможных проблемах совместимости на измененных прошивках я впервые узнал в 1989 году. Воспринял это как аксиому и не использовал модифицированные ПЗУ (ни при ремонте чужих клонов, ни при разработке собственного). Но конкретики - что именно не совместимо (списка игр/загрузчиков) не встречал. Может где-то такой имеется? Или хотя бы несколько названий (для примера).
P.S. Понятно, что степень "модификации" прошивок была разной, он замены (С) до переписывания загрузчиков с ленты. Поэтому интересны именно те игры, которые наиболее сильно зависят от содержимого ПЗУ.
Тоже интересен список таких игр. Читал только про несовместимость некоторых игр для 48К и меню загрузки от 128К, там достаточно было сделать ресет на 48К и дальше нормально должно быть.
Фирменные загрузчики или
А это все защита от взлома и отладки именно при самой игре или просто от копирования? Для фирменных лент не о таких подходах не слышал. Или это уже пираты так защищают честно спираченные игры?
Большинство неработающих игр не работало из-за использования свободного места в ПЗУ 48к как адреса векторов прерываний (Bomb Jack, Rambo 3). Соответственно, ПЗУ, использующие эту область, с такими играми не дружили (правда, это можно было обойти на машинах со стабильной шиной, оставляя FFFF на границах 256-байтных блоков (по адресам 3xFF-3y00)) (Кстати, та же проблема была с фирменным ПЗУ +3_, вроде в дальнейшем пофиксили).
Были и игры, использующие код ПЗУ для расксорки, но намного меньше. Насчет фирменных не скажу, а на взломанных бывало. И ещё были игры, проверяющие свободное место ПЗУ, и на основании того, FF там или нет, принимали решение, играть музыку на бипере или на AY (фирменные 128е используют свободное место ПЗУ 48к) - Exolon, Golden Axe. Т.е. на модифицированном ПЗУ 48к без AY в таких играх не было музыки, или вообще звуков.
Одна из моих любимых игр... хотя табличка со счетом там не сохранялась, но резались в нее активно. Был такой случай: на свадьбе у одноклассника перед тем, как отправляться в ЗАГС разыграли в несколько участников партеечку... я набрал какой-то рекордный счет, уже хотел записаться, а тут жених подходит и говорит: дай я запишу Алесю (так невесту звали) на первое место, это будет ей подарок))))))
P.S. Конкретика (хотя бы несколько названий) это уже что-то. Спасибо!
С этим напряг. Я помню только Bomb Jack, который ставил регистр I на область ПЗУ, заполненную FF'ами, и обработчик по адресу #FFFF. В бейсик-Орель это место было занято русским шрифтом и прочими изменениями, так что управление на адрес #FFFF по прерываниям не попадало, и происходил сбой. Остальные игры и программы поименно не помню. Давно это было.
Да, это была защита от взлома. Конкретно процедура линии применялась, если склероз не изменяет, в какой-то из топовых демок с Enlight 96.
Пираты всегда защищали честно спираченные игры. Но не от копирования, а просто от взлома и изменения авторства взломщика. Простейшие защиты (одна-две ксорки) встречались у S.S. Captain. У Bill Gilbert иногда было и посложнее (я описывал недавно в смежной теме защиту "* Loader *" от Bill Gilbert, которая оказалась для меня самой трудной). Средне-высокого уровня защиты встречались у Nicolas Rodionov. В демках и Cracktro от Max Iwamoto была интересная защита в виде виртуальной машины, программа для которой хранилась на стеке. Весь код состоял из коротких процедур, каждая из которых заканчивалась RET (реализация команд виртуальной машины) и списком последовательности их вызова, размещенном на стеке (программа виртуальной машины). Там и циклы были, и все остальное. Было интересно ломать.
Вообще наличие защит во взломанных играх представляло одну из главных трудностей при адаптации их на диск. Ведь эти защиты приходилось ломать. Хороший обзор трюков (вплоть до трудных) имеется в книжке Николая Родионова "Адаптация программ к системе TR-DOS". В этой же книжке он вводит термин "ксорка", который с тех пор широко вошел в жаргон спектрумистов.
Ни Скорпиона с теневиком, ни даже банальной кнопки мэджик у меня не было, поэтому извращался как мог. :)
Чтобы сломать какие-то релизы MKHG засовывал свой перехватчик в сектор на диске сразу после шифрованного блока лоадера. Часто картинка была пакованной, и сохранялась вместе с депакером. Лоадер не проверял, что загружено с диска, и тупо запускал мой код, который делал своё чёрное дело...
У меня был какой-то непонятный биос :v2_dizzy_punk: (о нём здесь где-то писали на форуме, не смог сходу найти тему - ну и ладно) - копирайт был... ну точно не 1982 год, попозже, и был встроен какой-то стрёмный теневой монитор, с которым совершенно непонятно было как работать, потому что горячие клавиши были неизвестны.
Так вот: не скажу, что прямо всё не работало, но многие игры, действительно, не работали. Как ни странно, прошло, как только нашёл человека с программатором, и прошил стандартную ОС.
Здравствуйте. Не могу вспомнить как сделать, чтобы, во время загрузки с магнитофона, на экране вообще не появлялись надписи "Program:", "Bytes:".
creator, вроде как ест одна тонкость:
Этот способ потенциально опасен тем, что если программа использует стандартные каналы "Спектрума" (данные из таблицы CHANS) для вывода своих собственных сообщений, и при этом не проверяет эту таблицу и не устанавливает ее содержимое, то возможны неприятности. В таком случае можно в начале программы-загрузчика сохранять где-либо значение PEEK 23739, а после загрузки всех блоков программы с заголовками восстанавливать его.
creator и null_device, благодарю.
Только вопрос: POKE VAL "23739", CODE "o" не нарушит работу TR-DOS?
Да в чем же такая трудность просто ПОПРОБОВАТЬ?
Rararura 2.1
новая версия моей программки редактора.
в основном изменения коснулись режимов big mode и copy symbol mode.
также программа стала работать немного быстрее.
список изменений:
- дабавленно копирование и вставка символов в copy symbol mode.
- добавленно удаление символов в copy symbol mode.
- добавленно сохранение любого из 3 шрифтов на ленту, в copy symbol mode.
- добавленно удаление любого шрифта в copy symbol mode.
- обработка в режиме complete стала быстрее на 90 секунд.
- изменена система вызовов шрифтов.
- удалены некоторые метки в снимках памяти.
- оптимизация программы.
во вложении сама программа в виде снапшота и кассетного образа:Вложение 79444
также прикладываю новую (дополненную) версию мануала: https://disk.yandex.ru/i/G34_wVya3X1Jcw
подскажите пожалуйста кто-нибудь.
я знаю что системный шрифт в пзу спектрума 48к располагается по адресу 15616 занимая там 768 байт.
а по какому адресу располагаются вот эти символы:
Вложение 79718
они выводятся в графическом режиме.
А они похоже не хранятся в ПЗУ прямо в виде символов, формируются при выводе.
Rararura 2.1.1
обновление программы.
в основном измения были в copy symbol mode и в редакторе UDG символов.
список изменений:
- выбор одного из трёх режимов в big mode после выбора в текстовом редакторе paste text to big mode.
- добавленно вставка UDG символов в copy symbol mode.
- добавлен индикатор для копировании символов в copy symbol mode.
- небольшой прирост скорости в текстовом редакторе.
- убран вывод лишней информации в редакторе UDG (информация теперь выводится только по нажатию клавиши "D").
- исправленна ошибка с выводом надписей результата в редакторе UDG.
- теперь модуль начинается со строки 8300.
- оптимизация программы.
во вложении снапшот и кассетная версия программы.
Можно ли уменьшить область печати с 22 строк до 16, чтобы потом при скроллинге нижняя треть экрана оставалась нетронутой? Если увеличить число строк служебной области с 2 до 8, то печать происходит на 16 строк, но все равно далее скроллинг низ экрана портит.
Rararura 2.1.2
новая версия программы редактора.
в основном изменения коснулись режимов data symbol mode и copy symbol mode.
также была проведена оптимизация программы и некоторые мелкие улучшения.
список изменений:
- добавленно сохранение UDG символа из data symbol mode.
- добавленно отмена сохранения UDG символа в data symbol mode.
- исправленна ошибка с неправльным цветом сетки в data symbol mode.
- исправленны ошибки с выбором UDG символа в copy symbol mode.
- переименовал data symbol в UDG info.
- оптимизация программы.
во вложении снапшот и кассетная версия программы, и все 4 модуля.
мануал можно скачать по отдельной ссылке: https://disk.yandex.ru/i/G34_wVya3X1Jcw
перезалил архив с программой.
Rararura 2.1.3
обновление.
исправлена одна ошибка в copy symbol mode, изменены индикаторы и проведена оптимизация программы.
список изменений:
- изменён индикатор выбранных символов для Multiselect в copy symbol mode.
- изменён индикатор обработки спрайтов в big mode (теперь это заполняющаяся полоса).
- теперь закончить выбор символов для Multiselect можно как клавишей "М" так и "N".
- исправленна ошибка с выбором UDG символа после копирования в copy symbol mode.
- оптимизация программы.
во вложении снапшот и кассетная версия программы.
мануал по этой ссылке https://disk.yandex.ru/i/Hp_Q32Z-STUU5A.