User Tag List

Страница 20 из 26 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 252

Тема: Сжатие данных

  1. #191

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    410
    Спасибо Благодарностей отдано 
    593
    Спасибо Благодарностей получено 
    345
    Поблагодарили
    111 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, упакованные данные могут лежать по тем же адресам что и распакованные. выше $8000

    - - - Добавлено - - -

    Забыл сказать что прерывания запрещены

  2. #192

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Примерно так
    Вложения Вложения
    • Тип файла: zip dzx0qd.zip (921 байт, Просмотров: 74)

  3. #193

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    410
    Спасибо Благодарностей отдано 
    593
    Спасибо Благодарностей получено 
    345
    Поблагодарили
    111 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, спасибо. но все равно что-то корраптит данные, но уже в других местах.

    - - - Добавлено - - -

    я использую форвард распаковку и распаковываю из адрессов ниже $8000 по адрессу $8000 в нулевой банк квазидиска если это поможет.

    - - - Добавлено - - -

    если я указываю команду 0 и распаковываю в основную память, а затем перемещаю в квазидиск c помощью PUSH, то данные корректные

    - - - Добавлено - - -

    сравнил твой код со своим. выглядит идентично. Может ли быть что гдето вне этого куска ниже код читает/пишет распакованые данные?
    Код:
    		push psw
    dzx0_setqd2:
    		mvi a,0
    		out 10h
    dzx0_ldir2:
    		ldax d
    		stax b
    		NEXT_DE
    		NEXT_BC
    		dcx h
    		mov a,h
    		ora l
    		jnz dzx0_ldir2
    		xra a
    		out 10h
    		pop psw
    		add a
    Код:
    		push psw
    dzx0_ldir1:
    		ldax d
    		push psw
    dzx0_setqd1:
    		mvi a,0
    		out 10h
    		pop psw
    		stax b
    		xra a
    		out 10h
    		NEXT_DE
    		NEXT_BC
    		dcx h
    		mov a,h
    		ora l
    		jnz dzx0_ldir1
    		pop psw
    		add a
    - - - Добавлено - - -

    вроде кроме двух ldax ничего не читает и не пишет данные вне ldir. проверил их несколько раз, вроде они адрессуют только область ниже $8000. Непонятно. Еще более непонятно то что если программу выполнять по шагам в Emu80 дебаге, то данные копартятся в другом месте. может это бага эмулятора? В v06x тоже данные копартятся но в другом месте.

    - - - Добавлено - - -

    Блин. нашел ошибку. все таки одна из процедур разрешала прерывания
    Последний раз редактировалось parallelno; 14.10.2022 в 23:02.

  4. #194

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Неожиданно и от демопатей бывает польза. Впечатлил новый упаковщик upkr - мой тестовый набор сжал лучше шринклера, при этом в распаковщике умножение всего лишь (если сравнивать со шринклером) 8x8. Ждем распаковщика для 8080.

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Oleg N. Cher(22.10.2022), svofski(23.10.2022)

  5. #195

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,308
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Забавно, что эта демка по духу близка progdemo. Я не очень понял, почему ее загнали в wild.
    Больше игр нет

  6. #196

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Wild cкорее всего потому что это галерея картинок из 90х не нарисованных специально для этой демы.

  7. #196
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #197

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если кто-то параллельно адаптирует распаковщик upkr для 8080, то мои текущие результаты такие: 268 байт (умножение развернутое, для сравнения шринклер 311 байт) и в 1.9 раза быстрее шринклера. Скорость распаковки примерно 6000 бит/секунду (в 2 раза медленнее loadfm, зато в разы быстрее традиционных форматов), очень медленно, но как упаковщик крайнего случая для дем 2k-4k подойдет. А шринклер теперь не нужен.

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    nzeemin(24.10.2022), Oleg N. Cher(24.10.2022)

  9. #198

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дожал upkr (гитхаб). Еще ускорить не получилось, зато подсократил (227 байт прямой, 257 - быстрый прямой, обратные на байт короче). Уже традиционно хочу оценить качество портирования по соотношению размеров вариантов 8080 и z80:
    227/170=1.34
    257/195=1.32
    Судя по предыдущим результатам это хорошие, близкие к пределу цифры для распакощиков LZ и LZ+
    Обращаю внимание, что в upkr есть опции --max-offset и --max-length, соответственно можно переделать распаковщик на кольцевой буфер.

    Эти 3 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Oleg N. Cher(25.10.2022), parallelno(24.10.2022), svofski(24.10.2022)

  10. #199

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавил версию deupkr с умножением по таблице квадратов, там нужно сначала вызвать (один раз) процедуру генерации таблицы, потом (сколько угодно раз) можно вызывать распаковщик. Эта версия примерно на 9% быстрее варианта с развернутым циклом умножения (а само умножение быстрее более чем в полтора раза). За это пришлось заплатить увеличением размера распаковщика на 33 байта и местом под таблицу квадратов (1024 байта). Если сравнивать со шринклером, то эта версия deupkr все равно компактнее, занимает меньше места под таблицы и более чем в 2 раза быстрее. Разумных вариантов дальнейшего ускорения умножения 8x8 я на данный момент не вижу, а неразумные (например занять 128 Кб кваза под полную таблицу умножения) даже пробовать не хочется.
    Последний раз редактировалось ivagor; 25.10.2022 в 18:02.

    Эти 3 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    Improver(25.10.2022), Oleg N. Cher(03.11.2022), svofski(25.10.2022)

  11. #200

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,396
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,368
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отколупал от базовых версий deupkr 2 байта, от табличной 4.
    Потестировал в эмуляторе 6128 - 8085 очень неплохо ускоряет upkr (пробовал квадратно-табличный) за счет более быстрого выполнения части команд, на 16-17%. Можно еще немного оптимизировать по размеру и скорости за счет недокументированных команд, но этот выигрыш незначительный.
    Сделал версию для 8088/86, можно считать что под Вектор 1608Ц (подойдет и для менее экзотических машинок типа Поиска или МС-1502).

    Эти 4 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    nzeemin(01.11.2022), Oleg N. Cher(03.11.2022), Rus(02.11.2022), svofski(01.11.2022)

Страница 20 из 26 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Архивирование, сжатие, упаковка.
    от GriV в разделе Программирование
    Ответов: 30
    Последнее: 22.07.2019, 17:25
  2. Существует ли идеальное сжатие без потери данных?
    от CodeMaster в разделе Программирование
    Ответов: 35
    Последнее: 06.10.2017, 00:15
  3. RLE сжатие (покритикуйте)
    от Vladson в разделе Программирование
    Ответов: 12
    Последнее: 16.03.2008, 12:29
  4. Ответов: 18
    Последнее: 18.06.2006, 16:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •