Pull to refresh

Comments 165

То чувство, когда «вы молодые ничего не понимаете»… Всю статью прочитал с выражением лица «да как так то?», это ж мега-крутое время было! Борьба с магнитофоном, изучение внутренностей спектрума, ремонт и «апгрейд»(прастигоспади) и т.д. и т.п.
UPD: это старость, видимо
Всё так и было, но из 2018 года оно воспринимается как что-то очень далекое, будто и не со мной происходило. Об этом и написал, вы уж извините.

«Борьба с магнитофоном» была: помнится все выходные изолировали платы магнитофона фольгой от шоколадок, иначе он безбожно гудел и ничего не загружал. Мотали вату на спички, протирали, регулировали. И вот настал момент, когда программа загружается без ошибок одну минуту, другую. Мы уже в предвкушении, что вот оно, наконец, заработало. И тут магнитофон падает с мягкого стула на пол, тянет за собой наспех припаянные провода. И все начинается сначала :)
>будто и не со мной происходило

Не знаю, у меня в мозгу навечно прошиты рефлексы при звуке пилотона. Начинаешь прислушиваться, не зажевало ли ленту.
Имел нестандартный российский Спектрум — Компаньон. Из-за неполной совместимости некоторые игры либо зависали, либо сбрасывались во время загрузки. Особенно ждал беды от всяких нестандартный загрузчиков aka Bill Gilbert) А если игра загружалась, то зачастую была настолько далека от образа, рисуемого заставкой, что через 5 минут начинал загружать следующую на кассете.
Как человеку, знающему о Bill Gilbert рекомендую посмотреть группу Tape Version, там этого добра ой как много :) (https://vk.com/tapeversion)
Сперва прочитал как «человеку, который лично знал Bill Gilbert-а»… =)
Не-е) я польского языка не знаю) так что сомневаюсь что я бы смог установить с ним диалог)
Мне сперва тоже так показалось)
Ох, у меня тоже был этот клон, очень много игр приходилось патчить, эти патчи я слал в когда-то популярный журнал «ZX-Ревю»: bolknote.ru/all/2109
Да совсем недавно это было…

Bruce Lee — одна из культовых спектрумовских игр.

Exolon — вы в курсе что там вроде если с 8 на 9-й экран спрыгнуть сверху, то можно получить бессмертие (или с 13 на 14, уже точно не помню) — такая пасхалка от авторов.

Krakout на спектруме был более популярен, чем арканоид. Как я помню, там на 21 уровне сложно с плюющимся «врагом». А в плане привычного «горизонтального» играли в Batty.

Ну и да, мой ник — из тех времен…
да, крутая была игра в двух частях
«Прыгнуть сверху» — это как раз Saboteur, а не Exolon. Эксолон — это цветные шарики чпокать, афайр.
А в саботере как раз надо было пролететь подальше, дождаться, пока он сам спрыгнет, потом правильно встать на половину ящика и по потайной лестнице вниз, там бессмертие в сверкающем чудо-сундучке :)
В Эксолоне что-то там было именно при нестандартном переходе с экрана на экран.
В Саботере не обязательно было пролететь, просто в левой части здания была эта скрытая лестница.
Кстати, если спрыгнуть со здания слева и оказаться на обрыве, который находится прямо справа от «невидимой комнаты», То можно сальтом в эту стену влететь и телепортирваьтся в самую правую часть здания. Эту штуку я сам нашел без описаний )
И бездонный ящик перфоленты есть в левой части здания в подвалах, но к нему нужно приходит не с пустыми руками.
Из всех игр, где надо мячом выбивать кирпичики, больше всего нравится Batty. С другом увидели её году в 91-м и сперва не особо поняли, но потом разыгрались и не могли оторваться. Красивая игра.
Точно, вспомнил что в batty вроде был режим игры на двоих сразу
Вот сегодня читаю такой статью, комментарии — ностальгирую. И тут сын 6 лет задаёт вопрос: «Папа, а у тебя в детстве был Майнкрафт?» :)
Надо сказать,«У меня в детстве был Boulder Dash»!
А моя сейчас в Boulder Dash-и гоняет, и сверстников подсадила…
… простая но умная игра, учит думать о последствиях
SUPAPLEX ей тоже должен зайти.
Supaplex, пожалуй, на порядок мозголомнее. Не то что бы механика другая, просто дизайн уровней кто-то с IQ 200 придумывал.

Мы его (супаплекс) как-то русифицировали ... :)

А еще был такой казус как ХОЛОДИЛЬНИК!!.. Во время загрузки его событие старт\стоп как правило прерывал загрузку ))
А иногда могло даже просто перезагрузить уже работающую (загруженную) программу/игру.
Но это лечилось большим электролитическим конденсатором впаянным на выходе блока питания.
До этого я иногда даже специально холодильник «превентивно» отключал прежде чем засесть за комп из-за чего на меня родственники ругались.

Но потом разбирая какую-то электронную рухлядь выдрал из ее большой кондер (ЕМНИП 20 000 мкФ), впаял его в БП и включающиеся без спроса холодильники, соседы с перфораторами или элекросварщики варящие трубы во дворе перестали беспокоить.
Аналогично. Только мне ещё и очки для чтения отдельные выписали в добавок к тем, что ношу постоянно :-( Точно старость.
Похожие ощущения можно испытать прямо сейчас, окунувшись в мир 3D-печати, где даже изделия стоимостью свыше $3000 всё равно представляют собой наколеночные поделки, слепленные в гараже из всего, что попадётся под руку.
Так что приходится пафосно превозмогать, подробно разбираться во всей этой кухне и дорабатывать, дорабатывать, дорабатывать…
Лет через 15 уцелевшие акриловые Пруши и ДСПшные ультумбочки коллекционеры будут собирать по частям на eBay…
Отличная аналогия из современности, спасибо. Мне в голову приходят еще какие-нибудь наголовные дисплеи типа Google Glass. Но про них, в отличие от принтеров, вообще непонятно — взлетят или нет. Пока эта технология кажется неудачной, но это пока. Планшеты например тоже существовали чуть ли не с начала девяностых, и Microsoft под них пилила Windows 3.0 с перьевым вводом. А реально популярными они стали в 2010 году.
Впечатляет надежность системы: запись очевидно шумная, скорость плавает, магнитофон фонит и стрекочет. Но работает

Здорово. 20 лет назад всё перечисленное (шумы, плавания и фон) приводили R Tape loading error.

На моих видео из статьи хорошо слышно, что и фонит, и плавает жестоко. Но чаще работает, чем нет. Очень надежный формат получился, хоть и медленный.
Если у вас плавает по амплитуде звук, то спектруму это почти фиолетово (там компаратор почти всегда отрезает правильно). Но спектруму крайне критична неравномерность скорости.
Надёжный именно из-за того, что медленный. И если сравнивать с другими (Atari, C64), то о надёжности речи не идёт.
В спектруме была реализация турбо скорости, которая поддерживалась в некоторых в некоторых играх, а затем и в некоторых прошивках.
Но пользоваться этим могли только владельцы хороших магнитофонов, типа маяк-240, или буржуйские. На ширпотребе в турбоскорости могло хватить на 10-20 загрузок, и то…
Да не было ничего особенного в этой турбоскорости. Была у меня фирменная кассета (не знаю, с журнала какого-то или уже копии). Там был полный набор — и джерки-тоны, и турбо-загрузка. И была она скопирована напрямую на магнитофоне (правда, на хорошем), и прекрасно всё грузилось с обычной «Сонаты».
Но в целом это был вопрос везения. У кого-то и собственноручно записанные кассеты не грузились толком.
Ну конечно качество зависело и от пленки, и от состояния магнитофона.

Я просто помню, что когда я перешел с раздолбаного Весна на маяк — у меня все в турборежиме стало работать месяцами без перезаписи.
Вообще запись гораздо более интересная тема, чем чтение. У меня одно время было так — безжалостно раздербанен китаймагнитофон, и линейный выход спектрума был подключен _напрямую_ к контактам головки. Записывалось с ужасающим клиппингом (и как оно не сгорело), но, похоже, спектруму этого и надо было. Читалось вообще с кассетного плеера Casio. На нём, кстати, и скорость очень удобно подстраивалась.
А так было и надо на самом деле, устройства для скоростного копирования спектрумовских кассет были устроенны именно так, и читалось железно на любом магнитофоне.
Загрузку с такой кассеты можно было раза в четыре ускорить, но это было геморно, переделывать загрузчики и не везде легко, да и экономически не выгодно…
Потому что магнитофонный вход на отечественных клонах был, как правило, сделан на отлюбись.
А у меня никогда не было проблем с загрузкой. Был Урал 8/64К и Кворум 64. Сначала грузили игры с однокассетника переносного Электроника, не помню точно цифры, то первая цифра была 3, т.е. 3 класса. Потом подключили двухкассетник Нота, то ли 212, то ли 220. Грузить стало легче. Вторая секция, которая с записью, была всегда с фиксированным положением головки, на первой подстаривал под отвёрткой. Крышка мешала, поэтому всю жизнь первый отсек был без декоративной крышки.
У нас кажется самые лучшие результаты были достигнуты при помощи катушечного магнитофона «Ростов-102». Но эта схема «в продакшн» не пошла ввиду громоздкости.
У нас была «Илеть-101» и с десяток бобин, две или три были заняты играми на всех четырех дорожках. Переписывали с того же спектрума, один раз прочитав на кассетнике в какую-то из программ, которая работала с прочитанным как с массивом данных, и потом записываешь на кассетник. Звук стоял… :) И таки в самом деле потом просто никаких проблем с чтением записанного, просто ни разу. Главное — чтобы никто лампочки не включал следующие пять минут!
И холодильник чтобы не включался, да :) Нежные тогда были устройства, внизу пылесосят, а у тебя по телеку снег и полосы мелькают.
Мы к соседу ходили и целыми днями у него зависали. Так было 2 самых главных врага — холодильник и дверной звонок :)
У меня магнитофон далеко стоял, но я просто для него спаял кабель нужной длины. Помню тогда нормальных кабелей не было, были какие-то с тряпичной основой каждого проводника, которую хрен припаяешь, особенно если тебе 12 лет. Но, главное сделал и всё работало. Читалось всё отменно, да и копировать можно было легко через специальную программу. Всё записанное лично мной читалось вообще без каких либо вопросов.

Ходовой магнитофон был Электроника серии 302, например, 302-1.

Нашёл. Не. У меня был Электроника 324.
У меня был ВЕКТОР-06Ц и советский магнитофон, про который я помню только то что он был черный и квадратный. Чтение кассеты очень часто приходилось начинать сначала.
У меня тоже был «Вектор» (и сейчас есть), а магнитофон — Романтик 306. Еще был и клон спектрума — «Байт». Могу отметить, что на Векторе загрузка обычно проходила удачнее.
У Вектора был прикольный формат записи блоками, и блоки на записи дублировались, т.е. при ошибке чтения на первом дубле оставался шанс прочитать второй блок.
Это так завораживало — смотреть на заполнение памяти блоками.
Мда, в Aliens я тоже не осилил как поиграть, даже как пострелять-то не осилил. Один раз только нашел кнопку, которая меня куда-то ещё переместила по лабиринту, там был чужой и сожрал всю партию, почему-то стрелять тупо не мог уже. В этом и печаль тогдашних игр, нужен мануал битовым наполнением не меньше самой игры, не считая картинок.

Krakout — мда, ностальгия, одна из игр, где заставка загружалась не просто скрином в видеопамять, а с изысками — и что-то я второй такой не помню, хотя на спектруме играл относительно много.

А доступность данных обеспечивается в первую очередь очень низкой плотностью записи и формально универсальным способом самой записи — пятно бита на пленке в ощутимые доли квадратного миллиметра куда как медленнее теряет намагниченность, чем на жестком диске, скажем, а формат записи «звуковая дорожка» существует до сих пор и вряд ли когда-либо полностью прейдет.
Фирма island к кассетам прикладывала подробное описание. Там вот, там была и карта Aliens с описанием, что нужно делать и куда идти. Но всё равно трудная игрушка очень.
В заставках вообще соревновались все кому не лень.
Вплоть до собственного загрузчика, который грузил данные не подряд, а в художественном порядке.

Ага, я даже, помнится, писал такие загрузчики. Написал графический редактор на бейсике, рисовал в нем голых баб, и задавал последовательность блоков для загрузки. И на ассемблере уже процедуру записи этой последовательности прямо с экрана и соответственно загрузчик,

У нас был какой-то клон 48к. Вроде Ленинград на него похож, но у него на картинках есть щели, для вентиляции как понимаю. На нашем не было. Такой серый и корпус кажется металлический был. Среди скринов в поиске не попался мне.
Помню была ещё история, я в садик ходил, наприглашал в гости «на компьютере» поиграть, в субботу. День наступил, в квартиру позвонились. И тут я вспомнил. Никому ничего не рассказал же. В общем, получил своё атата за это.

"Ленинград" это схема и плата. Корпуса мастырили кто во что горазд, и блоки питания тоже.

Krakout — мда, ностальгия, одна из игр, где заставка загружалась не просто скрином в видеопамять, а с изысками — и что-то я второй такой не помню, хотя на спектруме играл относительно много.
В Technician Ted во время загрузки по экрану гуляли человечки:


В Deviants во время загрузки можно было поиграть в игру (и, насколько помню, от успеха зависела дальнейшая сложность).

А уж игр с просто нестандартной загрузкой картинки по две-три на кассету попадалось всегда.
Сам писал такие загрузчики, будучи школьником. Бегущая строка, вращающийся счетчик, загрузка картинки квадратиками не по порядку, и т.д.
Венцом творения была игра пятнашки, которую можно было собирать, чтобы не скучать во время загрузки ) Ну и все вышеперечисленное вместе
А ваших творении в виде загрузчиков не осталось случаем?
Есть куча кассет, штук 50, да вот нет кассетника чтобы все это добро прочитать.
Когда запускал эмулятор с возможностью загрузки звуковых файлов, была идея попробовать найти все эти творения, но вот с реализацией пока туго )
Если есть возможность отправить почтой России, то с удовольствием переведу все ваши кассеты в tap формат. Если что-то интересное найдется, то обязательно будет добавлено сюда (https://vk.com/tapeversion)
Ох. Ладно, буду у родителей в след раз, заберу все это добро, отсортирую ) Напишу вам в группу
Хотел напомнить вам про кассеты :) ничего не искали?
Вот что я еще наизусть помню =)
62, 33, 0,64,17,0,27,55, 205, 86, 5, 201
Ну и собственно по аресу 5, 201 можно найти вшитый загрузчик, расковырять его и дописать свои эффекты.
Возможно, вместо первого 62 должно быть 221. Тогда ваш пример кода будет выглядеть как-то так.
Блин, точно
221, 33, 0, 64, 17, 0, 27, 55, 205, 86, 5, 201
Я эти команды наизусть помню еще с 90-х (ну почти помню).
в IX помещаем стартовый адрес экрана
в DE длину (0,27)
потом сбрасываем флаг
и вызываем процедуру по адресу 86,5.
201- return назад в бейсик.

Ещё была программа, тоже 12 байт: брала значение из порта чтения с магнитофона, и клала его в порт записи на магнитофон. Такой цифровой повторитель для лучшего качества перезаписи.

Сначала звук загружаемого заголовка, потом звук загружаемой заставки — это такая ностальгия.

У меня на телефоне звук загрузки какой-то игры в качестве рингтона. Очень хорошо слышно. Да и «знающие люди» радуются.

Насколько я помню, большинство игр грузило картинку прямо в видеопамять, поэтому она постепенно появлялась на экране под «чириканье», а потом раскрашивалась под «пчелиный гудёж». Вот так. Это был ZX Spectrum 48K.

Здесь же все во всех видео я слышу как грузится картинка, но не вижу этого процесса. Это такой случайный подбор игр, модель спектрума или поведение эмулятора?
Думаю это особенности конкретных игр. В тех, что не стал выкладывать, наблюдался разнобой: одни показывали картинку в процессе загрузки, полосами, другие выдавали всё целиком после загрузки фона. Еще одна даже показывала счетчик (в попугаях), обратный отсчет до конца загрузки. Причем когда на ленте происходит Tape Error, счетчик останавливается.
Вариант 1 — залить экран чёрным цветом, тогда только в конце будет видно, как она раскрашивается.
Вариант 2 — грузить сжатую картинку в оперативную память, потом распаковывать в видеопамять. Ну или можно несжатую.
Вариант 3 — свой загрузчик, который грузит заставку кубиками в нужном тебе порядке.
Либо вместо бордера мигает цветами в хвосте ракеты (Academy), либо разные варианты счетчика.
В общем все на что воображение гораздо.
Ну это уже не мгновенное отображение.
Но да, как тут написали ранее, тактов на различные эффекты хватало (за счёт снижения надёжности, впрочем).
Почему не мгновенное?
Заливаем экран одним цветом (и фон и пиксели), заружаем в экранную память картинку (вы ничего не видите), загружаем куда-то эти 768 байт цветов и мгновенно их перемещаем (на ассемблере переместить 1кб было не такой уж долгой процедурой). Тем более, заставка на этот момент загружена, и можно было выполнить перемещение «между треками».
Загружать «куда-то» атрибуты отдельно — это уже нужно либо загружать отдельным блоком, либо писать хитрый загрузчик. Проще уж сразу 7 кб переместить (что тоже достаточно быстро).
переместить 7 кб в момент загрузки — полюбому свой загрузчик писать, а если его писать, то уже проще будет немного оптимизировать.
Если же действительно заставка идет отдельным треком, то переместить между треками можно и 7 кб без проблем.
Да не в момент загрузки, а после. Грузим в ОЗУ, потом перемещаем LDIR'ом — это меньше 50 мс.
Окончание загрузки самых классных игр, я мог определить по звуку и полосочкам border'а. Сейчас в коллекции оригинальные ZX Spectrum, 128К +2, +3 с устройством DivIDE, загрузка игр происходит моментально с карты памяти. Но я все равно, время от времени, загружаю игры с кассет :)

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

Из моего коммента ниже видно, что между полупериодами сигнала логического нуля 855 тактов. Я щас не помню кнкретных цифр, но на саму загрузку требуется порядка 50 тактов на каждом полупериоде. Остальные 800 процессор просто впустую ожидает изменения бита сигнала с ленты на порту. Т.е. есть где развернуться. Я в своё время сделал загрузчик, который картинку в процессе загрузки выдвигал с правого края экрана. Т.е. скролинг экрана во время загрузки. TF-COPY (если я правильно помню название) — программа для копирования, могла загружать в среднем до 60kb в память 48k байтового спектрума. Т.е. в процессе загрузки в реальном времени эта программа осуществляла сжатие. Вобщем, многие разработчики создавали свои загрузчики.
Ну это на словах просто, когда пробовал писать свой загрузчик то первые версии просто не успевали принимать данные. Тогда полез в ПЗУ и обнаружил что там всё очень и очень оптимизировано. Очень активно используются сдвиги и прочие быстрые команды, а всякие умножения и сложения — нет. Именно с этого момента я серьёзно заинтересовался оптимизацией кода, научился высчитывать циклы и т.д.
Ну да, в лоб без нужных знаний не выйдет. У меня была чудо-книжка, я ее где-то по почте заказывал и мне прислали, ныне утеряна, к сожалению. Так вот в той книжке были расписаны все команды Z80, включая недокументированные, и то, сколько они тактов выполняются. Вот я и высчитал такты, требуемые для записи/чтения на ленту. Нужо было с точностью до такта всё аккуратно сделать, иначе не заработает.
Здесь же все во всех видео я слышу как грузится картинка, но не вижу этого процесса

У спектрума интересный видеобуффер, там по 1 биту на пиксель, а весь экран поделен на квадраты 8х8, в каждом из которых один цвет фона и один цвет «чернил» (и вроде бы бит яркости, но это не точно). Картинки на заставках сначала загружали пиксели, а в самом конце подгружали цвета для квадратов и раскрашивали
Цвет, мне помнится, один байт на знакоместо 3 бита — фон, 3 бита — чернила, 1 бит — яркость, 1 бит — мигание.
это такой загрузчик.
Стандартный загрузчик просто грузит в видеопамять, которая организована так, что сперва пиксели, затем цвет квадратиков 8x8 пикселей.
Но вы можете написать свой загрузчик, который будет грузить гусеничкой, или сперва закрасит экран в черный по черному, затем загрузит пиксели и снова загрузит уже цвета поверх нарисованной картинки.
А можно вообще много чего сделать.
В те древние времена я про интернет даже и не слышал еще, поэтому инфу часто приходилось добывать реверс-инженерингом ПЗУ и тщательно всё записывать. На бумагу. Недавно обнаружил в закромах старую тетрадку с такими записями. Вот, например, формат записи на ленту.
image
Длительности полупериодов сигнала указаны в тактах 3.5 Mhz-вого Z80. Эта инфа позволяла писать кастомные загрузчики с ленты, которые в процессе загрузки успевали делать что-то еще, помимо самой загрузки. Ну типа загрузчика титульного скрина в krackout из видео, что в статье.
Вот не исключено, что мне таким придется заняться, чтобы определить формат «неспектрумовской» кассеты. Хотя там есть способ (предположительно) проще: сделать тестовый экспорт программы в wav из эмулятора, и сравнить его с тем, что записано на кассете.
А кстати, вы не подскажете почему при сохранении памяти экрана у ZX загрузка потом отображалась чересстрочно, по несколько проходов? Это особенность отображения в видеопамять или форматом записи предусмотрено изменение адреса загрузки следующей порции на лету?
Должна быть такая организация видеопамяти. Это самый простой вариант загрузки, тем более доступный командой LOAD "" SCREEN$ и длиной ЕМНИП 6912 байт.
Такой формат) Вдобавок экран был поделён на 3 зоны — верхнюю, среднюю и нижнюю. Первая 1/3 экранной памяти отвечала за верхнюю, вторая за среднюю — верхнюю, в последняя за нижнюю. В самом конце шёл фон. Поэтому при стандартной загрузке картинка отрисоввываются по третям, а цвет появляется только в конце.
Так устроена видеопамять у спектрума. Чем руководствовался ее разработчик, сказать сложно. Но вряд ли это были соображения производительности.
Устроена так: 32 байта на горизонтальную линию — 256 бит. Каждые следующие 32 байта на экране отображались ниже на 8 пикселей. И так восмь раз. Затем вторая скан линия и снова 8 раз через 8 пикселей вниз. Ровно 2kb на блок, занимающий ровно одну треть экрана. И таких блоков 3 штуки. Итого 6144 байта. Это была битовая матрица. Далее идут 768 байт аттрибутов, каждый байт отвечал за матрицу 8x8 пикселей, указывая, в какой цвет красить нули, а в какой единицы на битовом поле.
Очень заморочено. В ПЗУ есть кусок кода, который вычисляет в этой схеме адрес следующего байта относительно произвольного, который на экране расположен на один пиксель ниже. Как сейчас помню, эта операция занимала 191 такт. Сделать это быстрее мне тогда не удалось. Между тем такая операция очень важна при рисовании спрайтов в произвольной Y координате в играх. Вобщем, мы крутились как могли.
наверно так сделано для регенерации памяти
Насколько мне известно, так сделано, чтобы при рисовании буквы, например, поместив адрес в регистр HL, делая Inc h переходить к следующей строчке буквы, а inc l к следующему знакоместу.
Нет, не для регенерации. Насколько я знаю, этот трюк позволял немного упростить процедуру вывода символов на экран. Если бы каждая следующая линия была бы рядом с предыдущей, при отрисовке символа в пределах знакоместа нужно было бы в цикле прибавлять число 32 к младшему байту указателя на текущий байт. Например, если указатель хранится в регистровой паре HL, нужно было бы использовать три комады для перехода к следующему изображаемому байту: LD A, L: ADD A, 32: LD L,A. Имеющеяся схема позволяет перейти к следующему байту простой ассемблерной командой инкрементирования старшей части указателя, т.е. одной командой INC H. Т.е. код получается и короче, и быстрее.
Толку от этого, если процедура вывода символа, зашитая в ПЗУ, тормозит жутко.
Не думаю, что одна команда (трёх не нужно: ADD HL,DE например) замедлила бы её ещё сильнее.
Да, ADD HL, DE получше будет. Но по скорости те же 15 тактов, что и у моего варианта с тремя командами. Против 4 тактов у INC H.
А тормоза ПЗУ это вообще отдельная песня. Особенно доставляла зависимость скорости выполнения оператора в бейсик-программе от его удаленности от начала строки. Эх, были же времена…
Ой, ошибочка вышла, ADD HL, DE занимает 11 тактов, я спутал с ADC HL, DE.
Ну вот. Экономия 48 тактов на символ — это ≈10 мс на весь экран (если не ошибся нигде).
Тормоза ПЗУ это нормально, на PC то же самое, даже хуже (учитывая всего два байта на символ и линейную организацию видеопамяти.
Я уже как-то писал тут, что теоретически можно представить экран спектрума и как «прогрессивную развертку» — это 256 байт (2048 пикселей) в ширину и 24 линии в высоту. Просто вот «наломанную» в финале таким образом…
Сколько же неудобств в рисовании графики это в свое время вызывало (при программировании), просто ужас.
Более того был такой компьютер «Profi» и с 512kb и аж с мегабайтом памяти и с процессором на 7 мегагерц. Вобщем — мечта любого мальчугана желавшего именно спектрум. Так вот, работал он и как обычный спектрум, а в режиме CP/M имел разрешение экрана 512x240 точек. Тоесть в 2 раза больше спектрумовского. И мне казалось, ну уж там-то сделали по уму… Ан нет… Оказалось, что там экран рисуется точно так же как и на Спекки и кроме этого там есть еще четные горизонтальные байты и нечетные и сначала заполняются нечетные, потом четные. Вот где настоящий ад!
При таком устройстве видеопамяти младший байт адреса для пикселей и атрибутов совпадает. Видимо, это упрощало логику в ULA.
191 такт это блин долго. Вероятно поэтому во многих играх взрывы (и тому подобное), когда всякое разлетается по экрану, сильно тормозят.

можно создавать заранее таблицу переадресации


занимает память, но быстрее

если делать таблицу Y -> Addr, то это целых 384 байта. Это охренеть как много для спектрума, но, видимо многие так делали. А куда деваться.
К примеру, для кода и данных игры максимум доступной памяти — 42240 байт. Ну экзотику, когда код в видеопамяти и закрыт аттрибутами, я не рассматриваю. Так делали редко. Если использовать backbuffer, да потратиться на такие вот таблицы (например, еще обязательно нужна была таблица переходов с прерывания по таймеру 50 раз в секунду — 256 байт, ну или там, таблица синусов, таблица умножений, таблица квадратных корней, много всяких таблиц), то на графику и код оставалось с гулькин нос. Впрочем, было интересно.
«Обязательно» таблица для режима прерываний IM 2 нужна была в основном на отдельных клонах, где в момент чтения вектора процессором ШД могла быть загажена. На фирменных резинках там всегда был железный 0xFF. И кстати, 257 байт, а не 256 :)
Это были соображения именно производительности, а конкретно производительности выборки из видеопамяти. Благодаря такой организации байт с пикселями и атрибут лежали в одной странице DRAM (в одном /RAS-адресе) и выбрать их можно было несколько быстрее в режиме 'page mode'. Благодаря этому процессор в оригинальном спектруме не становился колом на время выборки строчки, но продолжал работать, хоть и медленнее. В русских клонах такую разлиновку в основном продолжали из-за совместимости, т.к. довольно скоро наши научились выбирать из видеопамяти с минимальными тормозами (тот же ленинград) или вообще без них (пентагон и все последующие клоны).
Ясно, издержки несоврешенства технологии на этапе проектирования. Немного выиграли в аппаратной части, но проиграли на круг в общей производительности в играх.
Посмотрите, как выиграли в аппаратной части ZX80 и ZX81, и к каким ужасным последствиям это привело там. Будет интересно :)

Разработчик руководствовался тем, что было желание (а точнее не ходимость) обеспечить таким образом регенерацию DRAM. Вместо того, чтобы тратить такты СРU на регенерацию, сделали так, что она обеспечивалась автоматически при вычитывании для каждого кадра области экрана.

Получается, пока игры грузятся, можно крипту майнить.
Эх не умеете вы в Хариеер играть.
Там надо стрелять в самолеты, а корабли бомбить. Даже до суши не долетели… Так ждал…
Честно скажу, была полная потеря ориентации. То, что я разобрался, на какие кнопки нажимать — уже успех :)
И вот на пенсию массово выходят спектрумовские игроки, воссоздавая времена славной молодости :)
Помнится, были такие сборники „Лучшие игры для ZX-Spectrum“. Дюже любил их читать, эти геймстори или как их назвать. И очень потом удивлялся, когда в игре ничего подобного не было) Просто зачастую авторы выдумывали легенду, но выдумывали очень хорошо.
UFO just landed and posted this here
UFO just landed and posted this here
кстати качество чтения еще неслабо зависело от схемотехники читалки, мне показалось что лучше всего работает читалка предложенная Nemo в его KAY на базе 1006 таймера, сделал такую и в свою БКшку, стабильность чтения сильно выросла по сравнению со стандартным
Спасибо. Тоже любил Dizzy — прошел все части на спектруме.
Кстати, вспомнилась проблема. У друга был спектрум с советским магнитофоном, а у меня был спектрум с двумя дисководами 5,25 и магнитофон sanyo (какой-то бумбокс двухкассетный 1989 года). Так вот на Sanyo нам не удалось запустить ни одной игры! С его мафона грузился и его и мой комп. С Sanyo вообще ничего не получалось.
Может быть кто-то сможет разрешить эту загадку для меня?
Возможно шумоподавитель в нем.

.



в инете есть каталог со всеми играми и прогами для спектрума


и не нужно ничего загружать уже давно


но еще до инета, в 1998 году, писал свой загрузчик с ленты для ibm на асме, причем он позволял грузить с любой скоростью. ставил скорость ленты в 2 раза больше и загружал быстрее (=8


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

UFO just landed and posted this here
Можно узреть фотографии ваших кассет со стороны вкладышей?)
UFO just landed and posted this here
Про загадку. Был такой ПК — «Специалист». Очень на него похоже.
Попробую, в эмуляторе emu80 есть и от него прошивка кажется. Но если это и правда «Специалист» — это будет мистика какая-то. Откуда у меня взялись программы для него, когда такого компьютера не было? :)
Да было время работал в лаборатории в 1990 и далее сам делал компы вариант Зонова или Ленинград.
подключал дисководы и даже принтер и графопостроитель с com портом (добавил пару микросхем и написал драйвер).
Как появился дисковод дисковод стал использовать Mons и Gens. Асемблер и дизасемблер
Первым делом чтоб а aerowolf вертолетик имел не 3 жизни а 255.
Да у некоторых игр был более быстрый загрузчик но не всегда с первого раза все грузилось с кассеты.
Пару лет других компов в обозрении ни у кого не было так что все использовали ZX48 и 128
потом пришли уже 8088 и 8086 компы, причем тоже самодельные, но это уже другая история.

У меня тоже первым домашним ПК был ZX Spectrum. Только не фабричный. Батя сам спроектировал, изготовил и спаял плату. Сам делал все, даже корпус, клавиатуру, блок питания. Клавиатура и системник были одним целым, очень компактными. БП — отдельная коробка. Отдельно подключался и магнитофон, конечно же. Вместо монитора — здоровый телевизор… Были же времена!
+1. Разве что плата была не собственного проекта.
У меня с телевизором отдельная история. Была такая игра Heavy on the Magick. Начинал её раз 20 и бросал, так как там использовался сжатый шрифт шириной 4 пикселя и при подключении телика к антенному входу ничего толком нельзя было разобрать)
Для тех кто в теме: OCEAN, CODEMASTERS *слеза ностальгии*
Недавно нашел стаарый SCSI винчестер от своей 386-ой машинки. Году так в 93-94 кажется осваивал С. Помню долго мучался с инициализацией видео адаптера Hercules для графики. Сотворил тогда «цифровой осциллограф». Читал LPT порт (4 бита… они тогда не двунаправленные были, читал состояние Busy,Error) и выводил в 4 линии, показывающие состояние. Долго выбирал между Borland C и Мелкомягким. В общем когда уже было готово все. Пошел к другу прихватив винчестер (тогда это было номрально, флешек не было) и зимой подскользнулся и бахнул винт об землю… ААААА!!! И вот нашел. Попробую его оживить. Придется к знакомым по мастерским пошататься. Нужно найти контроллер )). На нем если не ошибаюсь еще должны сохраниться Norton Utilities… Моя ПЕРВАЯ покупка лицензионного софта. Был отдел в Доме Книги (Спб). Вроде была акция и я за ДОЛЛЯРЫ покупал… что то около 40$
Почетная задача, хоть и непростая. К сожалению, винт от моей 386-й системы растворился в тумане времён. Жалко, было бы интересно восстановить и личные документы, и архив фидо-конференций конца 90-х. Тогда впрочем я постоянно стирал данные, экономил место.
У моего дружищщи остались видеокасеты от АРВИДа с фидошной конфой. Он был «нодой» долгое время (эхххх). А вот самого АРВИДа уже нет. Интересно было бы почитать )).
А Спектрум прошел у меня мимо.

Он был у друга, и я помню это нечеткое гуляющее изображение на черно-белом ТВ (вроде 40*25 символов) и эту металлическую коробку с пластмассовыми клавишами. Тоже грузили что-то с «мафона», но его интересовали игры, меня — хоть как-то попрограммировать на бейсике.

Из своих у меня в то время был только один — Commodore с зеленым монохромным экраном 40*25, который привез из-за границы отец. Дискеты — какие дискеты? От малейшего щелчка он вырубался, поэтому весь код был записан в тетрадке на листочке и терпеливо набивался от руки. Документация? Какая нафиг дока… тем не менее, обнаружил совершенно случайно достаточно много недокументируемого функционала — комп иногда сам начинал «чудить» и выдавать на экран какие-то команды, оказывающиеся потом полезными. Особо толку тот «коммодоре» не принес и быстро надоел — у него еще долго светились пиксели после выключения питания, поэтому я набросал код, который псевдографикой выводил всякие обзывки на моего брата, и даже когда тот подбегал и выдергивал шнур, они светились в темноте. Брат ничего не понимал в «этом» и называл программы «таблицами», я их до сих пор так сам про себя называю. Но зато я сейчас — старый жалкий кодеришка, которому стремно сказать, кем он работает, а брат тот — бывший моряк, ныне держит бизнес, и женат на дочке олигарха.

Коммодоре после полугода пользования однажды совсем перестал включаться, и после был сдан на цветмет (сдача которого как раз в те времена процветала).
UFO just landed and posted this here
У меня в телефоне и сейчас стоит эмулятор Spectrum-a Marvin с игрушками Rider Raid, Saboteur и Lode Runner. В юности больше всего играл в эти три.

У одноклассника была Yamaha MSX, он же познакомил меня с Бейсик-ом, а то в школе был вечно закрытый класс с УКНЦ.

Кому ещё преподавали Информатику по этому учебнику?

Пытался припомнить по чему нас учили, но не вспомнил ничего. Запись стёрта.
Не совсем учебник, но я пытался что-то вспомнить и вспомнил. Два часа страдал: «что-то на эф, что-то на эф»

Если у кого-то внезапно остались кассеты с играми для ZX-Spectrum — дайте знать!) Дело в том, что я занимаюсь коллекционированием «хакнутых» версии игр (Bill Gilbert, Родионов и.т.д) Все результаты находок я выкладываю в группу (https://vk.com/tapeversion)
Не уверен, что вам это поможет, но вот на этих двух фото из статьи есть список игр, которые я теоретически смогу прочитать со своих кассет. Если есть подозрение, что это может быть хакнутая версия, которая вам нужна — дайте знать, я оцифрую.

вот эти





Дело в том, что пока целиком не ознакомишься с самой игрой — то и не поймешь хакнутая она или нет) Если есть возможность просто переписать содержимое кассеты в wav/mp3 то для меня этого будет более чем достаточно! Главное чтобы магнитофон имел стерео выход.
ОК, если руки дойдут оцифровать все целиком, я вам в личные сообщения напишу.
ТО есть напечатанный на обычном принтере вкладыш со списками игр не говорит вам, что игра явно хакнутая? =)
Если в названии есть знак "+" или "*" то обычно подразумевалось в игре реализации cheat-меню в виде бесконечных жизней и это максимум что можно было узнать о игре оперативно. А так естественно без осмотра игры целиком (в процессе загрузки) не узнать о её «модификациях»
Эм… так на спектруме взломать любую игру сейчас займет пару десятков минут… зачем коллекционировать?
У меня где-то валяются тетрадки тех пары сотен игр что я взламывал пользуясь обычным магнитофоном и peek/poke. Собственно патроны и жизни в Commando я взломал зная всего лишь 17 инструкций ассемблера, среди которых была dec ax ;)
Вот благодаря вам узнал, что у меня версия Krakout, которая помечена у вас как «2-ая версия от Fuxoft» :)
Насколько я понял, вы ищете игры именно с трейнерами, то есть модифицированные, а не хакнутые Билл Гилбертом.
Основная часть того, что выпускал Билл Гилберт это не взлом жизней/патронов а в основном замена оригинального загрузчика на свой с целью слома защиты от копирования. Что-то в самой игре он ковырял едва ли в 10%.
Я ищу абсолютно все, начиная от простых проявлении хаков в виде текстового сообщения или плашки с надписью Cracked by, коих множество штук и заканчивая завораживающими возможностями, которых пересчитать по пальцам. Это моё хобби, которым я занимаюсь уже 9 лет.
А если у вас вдруг завалялся написанный мной в давние годы редактор к Laser Squad (жуткая школьная поделка из бейсика и ассемблера), то где это можно найти?
Там еще на заставке в коридоре солдат стоит, которую рисовал мой друг (я однажды случайно нашел в гугле эту картинку, поэтому есть высокий шанс, что программу кто-то тоже перенес с пленки).

P.S. vk заблочен, и я свой аккаунт там тоже заблокировал, новый регистрировать не хочу.
Ха, это надо мне до родительского дома доехать, там и кассеты, и целая дискета с Laser Squad-ами и утилитами к нему…
… по состоянию на 2003 год это всё читалось
Вот остатки моей былой коллекции:
В полном качестве по клику
image


Есть что-нибудь редкое?

Еще где-то должны быть залежи 5.25" дискет с играми и софтом для ZX…
3 кассеты заинтересовало, есть возможность переписать их содержимое? Дискеты тоже могут быть интересны, но опять же есть ли возможность перевести их в TRD формат?)
как можно было в R-Type не поиграть — этож самая прогрессивная игра была…
IMHO самые прогрессивные игры на спектруме были
Elite (конечно)
Laser Squad (прародитель ufo/jagged alliance)
Nether Earth
Hero Quest
У меня на кассете Quazatron шёл перед Nether Earth. Обе игры прекрасные. Но Nether — моя первая «дюна».
А как-же The Great Escape и la Abadia del crimen, а так же Rebelstar с которого начинались Laser Squadы и x-com на письке…
в каждой семье со спектрумом были «свои» хиты, у нас бесспорными лидерами были:
Dizzy, Down to Earth, Sabotuer, Dictator, Jet Set Willy, Exolon, Elite, Match Point и конечно же R-Type (мы 3 джойстика об него сломали, в т.ч. один батя сам делал)
Статья — высокоч0ткая перепись старпе ветеранов умственного труда :)
В начале-середине 90х у нас по телику (Украина), в то время когда не было вещания, на 1 канале висела настоечная таблица и вместе с ней фоном транслировались программы для Спектрума. Т.е. нужно было подключить мафон к звуковому выходу телика (не помню как мы это делали, возможно что-то паяли от динамика) и часами сидеть записывать. Т.к. кабельного еще не было, качество трансляции было хреновым, но всё же раз запустить «скачанное» с телика удалось. Там был какой то электронный журнал с новостями, курсами валют, какой-то рекламой. Тогда это казалось фантастикой, да я и сейчас вспоминаю и мне кажется никто не верит когда рассказываю
Вот это да. Это почти как загружать программы с ютюба, только круче на порядок.
Точно, вспомнил это! Было такое.
Но да, игрушки там или не передавались или крайне редко. В основном какие-то проги и данные.
На УТ-1 рекламу в основном пускали, со слов знакомого.

У меня был ZX Spectrum-48k, собранный какими-то мастерами на работе у родителей. К нему прилагась одна кассета с играми и игровой джойстик, приблизительно такой. Загружался я с "чуда" советской мысли Романтик-309С-1. Как и на фото передняя панель кассетного отделения всегда была снята, т.к. лентопротяжный механизм не справлялся и очень любил кушать кассеты. Приходилось ему "помогать" отверткой. Когда появился загручик Leshij, пришло обегчение. Игры стали грузиться раза в 2,5 быстрее и при сбое можно было немного назад отматать пленку и продолжить загрузку. Это было счастье!

Если интересно, игры в формате «Леший» можно взять отсюда (https://vk.com/tapeversion)
Sign up to leave a comment.