ZX Review #7-8-9-10
08 ноября 1997

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

(c) Феськов Кузьма, г.Абакан

   Для рубрики "Форум" я предла-
гаю  сегодня совет по усовершен-
ствованию  известной  всем  про-
граммы  ART  STUDIO,  точнее, ее
версии для 128 килобайтов.
   Вспомните, сколько  мучитель-
ных минут вы провели в  попытках
отметить два одинаковых окна. На
мой взгляд, делать движение  ок-
на по пикселям несколько неудач-
ное решение, но из этого положе-
ния есть один простой выход. При
выборе данной опции стрелка  ме-
няется на квадрат, середина  ко-
торого соответствует углу  окна.
Я предлагаю заменить этот  квад-
рат на "+", середина которого  и
будет отправной точкой для окна.
Вид курсора будет таким, как при
редактировании  под  лупой.   Не
пытайтесь  отыскать  спрайт, со-
ответствующий  этому   квадрату,
все несколько  сложнее  (на  мой
взгляд, авторы зря потратили па-
ру десятков  байтов).  Итак, что
же нужно изменить:
   После того, как программа за-
пустилась, надо изменить следую-
щие байты - 57569,16;  57572,16;
57575,16;  57578,254;  57581,16;
57584,16;  57587,16.  Это  можно
сделать, используя встроенные  в
ПЗУ мониторы. Владельцам  других
компьютеров придется искать  ад-
реса самостоятельно.

   Я  хочу  поделиться  с   вами
своими идеями относительно  ком-
прессии файлов.  В  частности, о
методе Хофмана. На данном этапе,
да и вообще для  Спектрума, идея
архивов мне кажется  не  нужной,
поскольку размеры  не  те, да  и
программы сейчас уже  идут  ком-
прессированые авторами. И  нужны
самораспаковывающиеся файлы (ти-
па тех, которые создают компрес-
соры KSA и другие).
  Подбирать для файлов, содержа-
щих данные одного  типа, опреде-
ленное дерево  декомпрессии  мне
кажется несколько неудобным, по-
скольку даже  для  таких  файлов
различие может сильно  колебать-
ся.  Мой метод построения  дере-
ва декомпрессии  построен  очень
просто, правда,  при  этом  ком-
прессия файла занимает некоторое
время (не такое уж  и  большое).
Перед началом компрессии мы дол-
жны  построить  дерево,  относи-
тельно которого  будет  происхо-
дить компрессия, а делается  это
очень  просто - нам  всего  лишь
надо сосчитать количество одина-
ковых  байтов, то  есть  сколько
раз в файле встретился код 0, 1,
2 и так далее (тут имеется в ви-
ду не подряд следующие  байты, а
ВСЕ  встречающиеся).  Далее  нам
следует рассортировать эти  дан-
ные по  убыванию.  Делается  это
довольно просто. Очевидным  дос-
тоинством этого метода  построе-
ния дерева является  возможность
сократить его  размеры.  Это,  в
частности, актуально для тексто-
вых файлов, где  размеры  дерева
уменьшаются иногда на 100, а  то
и 150 байтов, тогда как в  пред-
ложенном  вами  способе   размер
всегда фиксированный. В  простых
программах (даже очень больших),
как  правило, можно  найти  5-10
байтов, которые не попадаются  в
них ни разу.
   Я поделился лишь идеей, и мо-
жет быть, она кому-нибудь  помо-
жет.  Приводить  получившуюся  у
меня программу  я  не  стал, так
как она далека от  совершенства,
да и декомпрессор слишком медли-
телен.

           *   *   *




Другие статьи номера:

TR-DOS для начинающих - Окончание.

Компьютерная новелла - Prince of Persia.

Компьютерная новелла - Лазерная бригада (по игре Laser Squad).

Перекресток драконов - Игра Rapscallion.

Перекресток драконов - Игра The Runes of Zendos.

Перекресток драконов - Игра The Saga.

Перекресток драконов - Игра Witch's Cauldron.

Перекресток драконов - Создаём Адвентюру. Обзор редакторов.

Перекресток драконов - Создаём словарь к Адвентюрной игре.

Программы, которые мы выбираем - Возможные последствия использования недокументированных команд.

Программы, которые мы выбираем - О замеченных шероховатостях в работе некоторых программ и пожелания к следующим версиям.

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

Программы, которые мы выбираем - Несколько предложений по усовершенствованию ассемблера.

Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

Программы, которые мы выбираем - Программа "Эмулятор Спектрума" v1.2.

Программы, которые мы выбираем - Что хотелось бы иметь в идеальном ассемблере.

Ретро - 40 лучших процедур: Копирование данных в памяти.

Ретро - 40 лучших процедур: Обмен токена.

Ретро - 40 лучших процедур: Определение адреса БЕЙСИК-строки.

Ретро - 40 лучших процедур: Определение длины БЕЙСИК-программы.

Ретро - 40 лучших процедур: Определение размера свободной памяти.

Ретро - 40 лучших процедур: Поиск и замещение строки.

Ретро - 40 лучших процедур: Поиск подстроки.

Ретро - 40 лучших процедур: Поиск строки.

Ретро - 40 лучших процедур: Составление списка переменных.

Ретро - 40 лучших процедур: увеличение и копирование экрана.

Ретро - 40 лучших процедур: Удаление REM-строк.

Ретро - 40 лучших процедур: Удаление блока программы.

Советы экспертов - Игра Fredloader.

Советы экспертов - Игра Robin of Sherwood: The Touchstones of Rhianon.

Советы экспертов - Игра Scorpions: Die Machines.

Советы экспертов - Игра Terropods.

Страничка iS-DOS - Описание рестартов системы IS DOS.

Форум - Алгоритм распознавания символов.

Форум - Время выполнения недокументированных команд процессора Z80.

Форум - Концепция экрана высокого цветового разрешения.

Форум - Несколько Pokes к играм. Программа Hacman96.

Форум - По поводу новых DOS и BIOS для Спектрума.

Форум - Программа Multicolor на любой модели компьютера. Использование 2-го экрана для Multicolor'а. Демонстрация текста. Электронные журналы.

Форум - Проект ZX Config.

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

Форум - Эмулятор ZX Spectrum на IBM. По поводу шестнадцатеричной системы счисления. Программа ZX-Stars. Странности в Elita

Форум - Эффекты на бордюре и Multicolor.

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

Читатель-читателю - Группа 'Light'. Спектрум и экспертная система.

Читатель-читателю - Драйвер принтера для Scorpion'а.

Читатель-читателю - Печать чисел в различных системах счисления.

Читатель-читателю - Программирование аркадной игры со скроллингом экрана.

Читатель-читателю - Процедура печати меток ассемблера XAS для монитора-отладчика STS 4.3.

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

Этюды - Графический эффект "цветные полосы".

Этюды - Драйвер экрана для печати по 64 символа в строке.

Этюды - Комплект защит загрузчиков.

Этюды - Обращение к диску в режиме IM 2. Работа с диском нестандартного формата.

Этюды - Печать символа, увеличенного в 8 раз. Программа "наливания" экрана. Процедура гашения экрана по точкам. Очистка экрана как в Terminator'е. Поиск последовательности символов в памяти. Система перекодировки символьного набора.

Этюды - Программа - каталогизатор дисков.

Этюды - Программа вывода значений амплитуды каналов муз. сопроцессора на бордюр.

Этюды - Программа вывода картинки.

Этюды - Программа зажигания спрайта.

Этюды - Программа очистки заданного окна экрана.

Этюды - Программа сортировки массива по возрастанию. Процедура заполнения экрана заданным атрибутом. Процедура проявления картинки. Эффект летящих навстречу звезд. "Душ", идущий из верхнего левого угла экрана. Процедура "осыпания" картинки по пиксельным линиям. Программа "вытягивания" картинки под углом в 45 градусов. Три процедуры "Scroll".

Этюды - Процедура печати чисел.

Этюды - Процедура прорисовки символа с помощью атрибутов.

Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.

Этюды - Процедура рисования линии.

Этюды - Процедура составления оптимальной таблицы символов.

Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.

Этюды - Спрайтовый скроллер. Процедуры проявления экрана.

Этюды - Укороченная процедура индикации амплитуды каналов муз. сопроцессора. Способ вычитания константы из регистровой пары HL.

Этюды - Формула для вычисления дня недели.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Новости - миниинтервью Lav aka Dr, Sampler.
Софт - Win-bооt fоr Gаmmа-dоs.
Скелет - Схема и перечень элементов для VICOMM-модема.

В этот день...   18 июля