Pull to refresh

Comments 64

С каждым годом человек отдаляется от железа ПК. Операционки, фреймверки… Раньше как то ближе был к ресурсам техники. Спаибо за интересную статью, мой первый ПК был как раз спектрум. Помню что меня тогда очень поразил графический редактор и какая то программа которая могла записывать с кассеты в память спектрума звук, небольшой длины, сильно хрепящий, и потом его воспроизводила, мной это воспринимаось как волшебство какое то. (зы прошу извенить что комментарий не совсем по теме статьи)
Ага, графический редактор именно так назывался.
А было у меня порядка 30 кассет, и я несколько месяцев изучал их содержимое, ибо многие были без подписей.
Помню его) А еще был Picasa, почти один в один как Paint в Windows 3.1
UFO landed and left these words here
Да, конечно, как я только умудрился написать «Picasa» =)
Ну на самом деле я считаю не все отдаляются, кому интересно тот интересуется и знает. Сейчас просто больше возможностей почувствовать себя программистом чем скажем 20 лет назад…
Вот только теперь программистом считается каждый, кто может накликать кнопки на форму…
Вы не можете считать себя «близким к технике» если вы ни разу вручную не выставляли значение сумматора с помощью пинцета.
UFO landed and left these words here
Сам помнится все эти методы изучал. Было же время все машинные коды знал, относительные переходы в уме расчитывал, потому что памяти мало, а загрузчик надо поломать ибо не загружается он из за криво написанной защиты.
p.s. И этта… cracked by bill gilbert Привет всем спектрумистам.
Сейчас эти знания тоже актуальны. Очень многие игры идут с экслибрисами — маленькими программками с текстом «Из коллекции такого-то такого-то» и загрузчиком самой игры. Так что поле для исследований и применения знаний — огромное.
Ностальгия… Вспомнил, как писал на асме вывод листинга бейсик-программы с демаскировкой этих трюков. Взлом бейсик-загрузчиков после этого превратился в конвеер.
Переименовать первую строку в нулевую и наоборот можно и одним POKE

Еще Бейсик-программы могли нашпиговываться POKE вешающими комп по BREAK («Королевство Эйфория»)
Переименовать первую строку в нулевую и наоборот можно и одним POKE

Да, вы правы. Строку с номером по 255й включительно можно переименовать и одним POKE.

А вот в «Королевство Эйфория» не играл и таких агрессивных защит не встречал.
Ну, как же. Даже сейчас помню: POKE 23659, 0. Системная переменная, задающая количество строк служебной области внизу. Прошивка захочет вывести туда L'Break into program и обломается: чёрный экран, спасает только reset.
Дааа, большинство игр, что были у меня, имели такую защиту. Спасал MERGE "".
Приёмов действительно куда больше было. Например, в строках можно задавать специальными образом цвет и прятать текст в белом на белом.
Еще в строки добавлялись какие-то символы, препятствующие перемещению курсора по ней
Помню, была прекрасная книга Н. Родионова «Адаптация программ к TR-DOS», примерно на две трети посвящённая защитам и их обходу. Где-то лежит. Вот, главу из неё нашёл.
Делать нечего, пойду поплачу.
У меня она до сих пор храниться.
Третья часть называлась насколько я помню «Опус о настоящих программистах» и описывала нынешних гиков.
Ох ёлки, да там вообще кладезь!
UFO landed and left these words here
Да-да, я сейчас тоже вспомнил свои безуспешные попытки создать/изменить эту строку. Тоже считал это тайным кунфу :-)
Помню игру на скриншоте. Rebel Star называется — классная была стратегия пошаговая.
О да! Я даже ставил себе эмулятор на мак, чтобы в нее зашпилить!
отображаем ноль, а переход будет на 23875

Я не понял. Как отображаем ноль?
На экран попадает 0xf9 (RANDOMIZE) 0xc0 (USR) 0x30 (0), а для перехода используется значение, закодированное в пятибайтной форме.
каких-то 15 лет прошло, а память полностью поддалась команде CLEAR. С таким трудом все эти закорючки сейчас воспринимаются.
Но все равно спасибо :)

p.s. юность прошла за диззиассемблированием дисковых версий игрушек и переписыванием загрузчиков под кассетные версии (новые игры приходили на дисках, а народ требовал кассет). Все это богатство продавалось на ЦКР Перми.
Напомнилось…

RANDOMIZE USR 15619: REM: RUN

Вы заставили меня плакать в ностальгическом приступе
А я иногда вбивал
Randomize usr 15616.
Может кто-нибудь объяснит что оно делало? (Меня учили так делать после того как комп зависнет =))
При подключенном TR-DOS эта команда передаёт управление TR-DOS, выводя её консоль.
Выкидывало вас в ДОС, откуда уже из-под консоли могли делать то, что нужно
при переходе по адресу 0x3D00-0x3DFF из адресов старше 0x4000, на адреса 0x0000-0x3FFF отображалась пзу TR-DOS, таким образом TR-DOS можно было вызвать именно с этих адресов. Еще была фишка, что с портом 0x1F, который использовался для получения информации от ВГ93, можно было только с адресов 0x0000-0x3FFF, только с пзу и когда писали свой код для работы с диском, приходилось использовать код в ПЗУ, который делал дофига лишнего.

Ну а данная команда подрубала пзу от TR-DOS и переходила на его 0 адрес, где был сброс, по адресу 15619 находился просто RET
15619 и 15616 — два числа которые со мной теперь на всю жизнь 8)
UFO landed and left these words here
Мой первый компьютер ZX Spectrum 128k. Мои первые мануалы, это Справочник по Spectrum Basic и инструкция по ZX Spectrum 128k. Жалею, что однажды по своей глупости я его выкинул.
Эх. Ностальгия. Как же раньше всё просто было. Любую программу можно было «взломать». Я даже как-то ломанул защиту от копирования Сергея Веремеенко. Сделал копировщик таких игр. Вот это было интересно копаться.
Против встроенного отладчика ZX Scorpion 256 это не помогало. Там были более хитрые приемы, связанные с переключением страниц памяти и служебной областью данных, подробности уже не помню.
А вы помните журнальчик ZX-Ревю?!
А еще был замечательный электронный журнал Spectrofor вроде. Очень неплохо организован был.
Иногда с игрушками в комплекте ( о, Звёздное Наследие !) Впервые увидев его тут же понял — эпоха бумажных книг подходит к закату :)
Spectrofon, да. Его те же товарищи делали, которые Звёздное Наследие, как раз.
Ещё был питерский ZX-Format, местами с более навороченым дизайном, но менее плодовитый.
Дома до сих пор лежат!
Читая заголовок уже предвкушал статью об антиотладке с использованием как минимум прерываний :)
А я в заголовке честно предупредил, что речь пойдет о Sinclair Basic'е :)
UFO landed and left these words here
Тогда не стоит стесняться, нужно только найти время и написать статью о средствах защиты от копирования на ZX Spectrum и методах противостояния им. Думаю, многим будет интересно.

Вспомните молодость наиболее полезным для подрастающего поколения способом — через написание мемуаров ;)
UFO landed and left these words here
С одной стороны, вы правы. За последние 25 лет многое изменилось и в процессорах, и в операционных системах. Но принципы противостояния отладке остались прежними:
1. Противодействие активной отладке
2. Противодействие пассивной отладке (запутывание дизассемблирования)

Поэтому знакомство с общими принципами отладки и противостояния ей на простых примерах (без ОС, 8-битный процессор, 48k оперативной памяти) может быть полезным.
А Billa Gilberta помните? Вот что меня тогда убило наповал — куча машинного кода, на первый взгляд не имеющего никакого смысла — просто мусор. А на до же, декодирует основной код загрузки программы :) Первый пример обфускации для меня был.
Не в тему бейсика конечно, но напомнили. Кучу времени тогда убил, пока въехал что к чему :)
www.dtf.ru/forum/msg.php?id=157812
speccy.info/Bill_Gilbert
zxpress.ru/article.php?id=1204&skip=1
Фото спионерено из статьи на ZX-Press:
███▒  ░                               ░█████████████████████████
████:░:                                ░████████████████████████
███░▒▓:                                 ▓███████████████████████
███::▒:     :░░░▒▓░░                     ░██████████████████████
███:     ▒▒███████▓▓▓░░░░:               :██████████████████████
██:    :▒███████████████▒░░:             :██████████████████████
██░   :█████████████████▒▒▒░             :▒█████████████████████
███: ░██████████████████░▒▒▒░░░:         :██████████████████████
███▒ ▒██████████████████▒▒▒:░▒▒:        █▓▒▓░  ░▓▓░  ░▓░░▓█▓░░▓█
████ ▒▒████▒▒▒███████▓: ░:     ░:       ███▓░ ▓ ░▓▓░░▓▓░░▓█▓░░▓█
█▒::  ▓███▒▒░  ▒███▓    ░:::    :       ███▓░  ░▓█▓░░▓▓░░▓█▓░░▓█
 :░░  ▓██: ▒   :███▓            ░       ███▓░ ▓ ░▓▓░░▓▓░░▓█▓░░▓█
    ░ ▓██▓▓█░░░▓██▓▒░           ▒      ░███▓░  ░▓▓░  ░▓░  ░▓░  ░
:  ░▒░██████████████░:: ░:░: ░:░:      █:▒▒█████████████████████
░:░█:█:█████████████▓░:▒░▒▒▒▒▒▒░:     :█ ░░█████████████████████
░█████░███████████▓░:: :░▒▒░░:       :▒▓░░▒█████████████████████
▓████████████████▓░    :▒▒▒▒:        ::  :▒█████████████████████
███████▒███████▒░::       ░:         ░░█░▒▒█████████████████████
███████▒ ████▓ ░           ░:        ▒▒  ▒▒█████████████████████
████████ :█████▓████▓                 ░    █████████████████████
███████▓   ███▒███▒▒ :                ▒ : :█████████████████████
████:::    ██▓██████░▒:               :░:░▒█████████████████████
████       █▒░:▓█▓▓▒░░:                   :█████████████████████
█████▒:     ▓█░:░:                       :▒█████████████████████
(извините за негатив, используйте выделение текста)

P.S. Мне кажется я где-то находил нормальное фото БГ, но сейчас уже не могу найти…
Можно было игру вообще записать с телика, по телевизору показывали обзор игры, его можно было писать на аудиомагнитофон, потом проигрывать и играть. Так классно :) Бэтмэн помню покорил меня своей графикой!
Вспомнил интересный метод автозапуска ассемблерного кода — load code затирал стек, меняя точку возврата из бейсика в саму программу.

Антиотладочный приём номер один: хранить критические для работы программы данные с нижней строчке экрана с ink0paper0 на соотв. полосу.
RANDOMIZE USR 0

Ради прикола перезагружались используя эту комманду. Ну и набор комманд по одной целиком через шорткаты клавиатуры — это да… Жалко, что было мало литературы, и дальше рисования кружков дело не пошло… :( До ассемблера на Синклере так и не добрался.
Эх, ностальгия… Прям взгрустнулось.
А еще, касательно пунктов 2 и 3. Можно было сделать несколько строк с одинаковым номером. Еще помнится, что курсор, попадая на такой номер строки, тоже «размножался».
аж прослезился… Вспомнил, как после прочтения статьи в ZX-ревю довелось ломать образчик Alcatraz'a.

а Codebusters'овские защиты игрушек — это же песня была…
Про последний прием не знал, randomize usr 0 всегда ставило меня в тупик.
Sign up to leave a comment.

Articles