Ещё раз про DOWN_HL.

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

Компрессия на спектруме: MegaLZ

Начну с короткого вступления не совсем по теме. Я сильно увлёкся сжатием данных и за пару лет прошедших с прошлого обзора компрессоров наработал довольно большую кучу информации. К сожалению, у меня совершенно нет времени и сил делать ещё один огромный обзор, как я сделал в 2017 году. Поэтому формат подачи меняется. Я буду понемногу писать индивидуальные профили компрессоров, и обновлять их по мере необходимости. Таким образом, мне не придётся сидеть на новых результатах годами, а у вас будет информация посвежее.
Итак, go go go go go!

Сжатие данных для современного кодинга под Z80



Многие программы сделанные на спектруме в 1980е не использовали технологии упаковки данных. Вообще, сжатие было не так широко известно, упаковщиков было мало. RLE не считалось позорным алгоритмом сжатия! Сейчас ситуация изменилась; почти каждый современный релиз, как минимум, придёт в упакованном виде, а как максимум — будет хранить часть данных запакованными и распаковывать их на лету, по мере надобности. Тем не менее, разговоры о компрессорах часто показывают, что редкий кодер видит общую картину вещей. Люди используют один и тот же пакер десятилетиями; иногда неплохой, просто устаревший пакер, иногда — пакер, который даже 10 лет назад не стоило начинать использовать. Я сделал серию тестов для десяти достаточно модных упаковщиков, чтобы попробовать понять, какой пакер нужно брать для современного приложения. Надеюсь, вам будет тоже интересно (и полезно) посмотреть на то, как выглядят результаты.
Читать дальше →

GO WEST, часть 2

Ну вот я и созрел написать вторую часть талмуда по классическим спектрумам. Первая часть никому не понравилась, потому что в ней было многабукаф и никаких картинок. Попробую исправиться: напишу меньше букаф.
Картинок - не дождётесь!

GO WEST, часть 1

Я хочу попробовать собрать в максимально компактной форме более-менее всё, что нужно для того, чтобы либо портировать вашу программу на один из классических спектрумов, либо написать её с нуля сразу совместимой с классикой. Когда я говорю «классика», я имею в виду любую из следующих машин: ZX Spectrum 48K, 128K, +2, +2A, +2B или +3. На практике, многие из этих моделей очень похожи друг на друга с т.зр. программиста и реально важно отличать следующие три вида классических спектрумов: 48К или 128К/+2(«серый») или +2A/+2B/+3.

В целом, отечественные клоны обладают довольно высокой степенью совместимости с оригиналами и переделка вашей программы для Leningrad 48К на 48K классику или переделка вашей программы для Pentagon 128K на любую 128К классику скорее всего окажется возможной, зачастую даже необременительной. Тем не менее, различия есть, и если не принять их во внимание, можно очень легко получить спектрумовский софт, который ни на одном настоящем спектруме не заработает.
Как этого избежать?