User Tag List

Страница 6 из 43 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 429

Тема: Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск

  1. #51

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а зачем читать из rom?
    как обычные selfextract не подойдет ?
    загружаем так чтоб хвост и главное распаковщик был выше последнего байта
    и расспаковываем, в процессе затираем начало архива но это уже не страшно
    в крайнес случае можно использовать видеоram

    или так не пойдет ??

  2. #52

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если к каждой программе прицепить распаковщик, то мы будем хранить в ПЗУ 150 распаковщиков. Зачем?

    Читать из ROM-а быстрее, чем переписывать из ROM-а в память, а потом читать из памяти. Нет промежуточного этапа.
    Последний раз редактировалось vinxru; 18.11.2011 в 22:39.

  3. #53

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем 150 копий
    У вас декодер прям в коде лаунчера
    Его все равно в память грузить
    Может пару версий
    Одна если влазим в память без затиранив
    И одна допустим в видеопамять если не хватает

    и как я понял вам надо 768 байт на "словарь" ??
    Последний раз редактировалось esl; 19.11.2011 в 00:34.

  4. #54

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    768 байт - это временный буфер первой версии распаковщика. Но я отказался от первого алгоритма в пользу второго. После доработки b2m, он стал работать в 3 раза быстрее. К тому же он не требует дополнительной памяти и сжимает на 10% лучше.

    Я не понял точно, что вы хотите сказать. Но я планирую сделать так. Сначала пользователь запускает загрузчик командой "R0,1000 G". Этот загрузчик содержит меню, скрытый список адресов для всех программ и распаковщик (размером 210 байт). Когда пользователь нажимает Enter, распаковщик копирует данные из ПЗУ в ОЗУ, параллельно их распаковывая.
    Последний раз редактировалось vinxru; 19.11.2011 в 00:49.

  5. #55

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а, так вы остановились на MegaLZ?
    а то я понял что вы свой оригинальный решили брать и уговариваю взять MegaLZ

    а про "загрузчик" который "R0,1000 G"
    его то все равно надо в памяти хранить, и следить чтоб не затерло его кодом.

    а как "работает" romdisk ?
    сбросили адрес ROM в 0 а при чтении из портаданных автоинкремент адреса?

  6. #56

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    а то я понял что вы свой оригинальный решили брать и уговариваю взять MegaLZ
    Оригинальный - это разновидность LZW. Он не обладает шикарным сжатием, но он работает и понятен. Мне его ни сколько не жалко. Главное результат.

    Цитата Сообщение от esl Посмотреть сообщение
    а про "загрузчик" который "R0,1000 G"
    его то все равно надо в памяти хранить, и следить чтоб не затерло его кодом.
    Конечно.

    Цитата Сообщение от esl Посмотреть сообщение
    а как "работает" romdisk ?
    сбросили адрес ROM в 0 а при чтении из портаданных автоинкремент адреса?
    Нет. Перед каждым чтением надо записывать адрес в порты EE01:EE02, а потом из порта EE00 читаем результат.

    ---------- Post added at 01:30 ---------- Previous post was at 01:18 ----------

    Сейчас скачал эмулятор на домашний комп и решил проверить производительность. И внезапно нашел кнопку выбора ПЗУ. И она вроде работает. Чего же молчали?

    Я измерил время необходимое на распаковку из ПЗУ в различных вариантах:

    Распаковка из памяти = 3 518 299 тактов.

    Распаковка из ПЗУ = 3 907 879 тактов.

    Замена LD A, (DE) на

    EX HL, DE
    LD (0EE01h), HL
    LD A, (0EE00h)
    EX HL, DE

    Копирование из ПЗУ и распаковка из памяти = 4 479 293 тактов

    l: ld (0EE01h), hl
    ld a, (0EE00h)
    ld (de), a
    inc de
    inc hl
    dec bc
    ld a, b
    or a, c
    jp nz, l

    То же, но в цикле 16 операций копирования подряд = 4 138 697 тактов

    Пробовал изменять только нижнюю половину адреса ПЗУ - фигня. Как я и предполагал, выгоднее всего распаковывать прямо из ПЗУ
    Последний раз редактировалось vinxru; 19.11.2011 в 02:36.

  7. #57

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Нет. Перед каждым чтением надо записывать адрес в порты EE01:EE02, а потом из порта EE00 читаем результат.
    ну тогда ИМХО если вычитывать из ПЗУ побайтно в цикле распаковщика - будет только СИЛЬНО хуже
    чем вычитать все в память и расспаковать

    ибо тогда в теле расспаковщика на каждое чтение из ПЗУ надо будет делать кучу save/restore что по идее скорость убьет.

    но, опять же, это мое имхо

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

    ---------- Post added at 00:38 ---------- Previous post was at 00:36 ----------

    был неправ, ухожу грустить
    я не обратил внимания что в расспаковщике HL указывает куда надо
    думал что будет еще отдельный счетчик в памяти для адреса в пзу
    Последний раз редактировалось esl; 19.11.2011 в 02:40.

  8. #58

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    ну тогда ИМХО если вычитывать из ПЗУ побайтно в цикле распаковщика - будет только СИЛЬНО хуже
    чем вычитать все в память и расспаковать
    Проверил. Сначала копировать из ПЗУ в ОЗУ, а потом распаковывать медленнее в 2 раза. И это логично.

    Цитата Сообщение от esl Посмотреть сообщение
    кстати, родилась еще идея, может не все паковать в пзу ?
    например системные чтоб пускались без расспаковки, места они мало занимают, а может быть полезно что память не затирают,
    может их в "отдельную" странику вынести.
    Хорошая идея. Сделаю.

  9. #59

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В рубрику "Это интересно"

    В гонках, перед запуском, данные также распаковываются. Вместо 29Кб игра становится размером 56Кб. В последующих запусках, естесственно, распаковка пропускается. Я попробовал сжать прогой MegaLZ эти 56Кб, получилось на полкилобайта меньше И место экономится, и время перед запуском! Правда, распаковщик нужно размещать немного выше этих 56Кб. Но если он и так там будет (в случае загрузки с rom-диска), то можно это использовать.

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

  10. #60

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    та да, легендарная прога
    по ней в свое время мы с Виктором Пыхониным (Автором emu80)
    частично восстановили знакогенератор апогея

    я свой писал, он свой, общими усилиями восстановили

Страница 6 из 43 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Апогей-БК01 и Апогей-БК01Ц: Обсуждение
    от Mick в разделе Радио-86РК
    Ответов: 370
    Последнее: 24.03.2025, 11:20
  2. Апогей-БК01 и Апогей-БК01Ц: Ремонт
    от ROMка в разделе Радио-86РК
    Ответов: 193
    Последнее: 15.11.2023, 15:09
  3. Продам Апогей БК 01
    от PicNov76 в разделе Барахолка (архив)
    Ответов: 27
    Последнее: 15.07.2010, 07:20
  4. Кому Апогей БК-01 в СПб?
    от spoonlite в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 06.10.2009, 22:57
  5. Корпус от Апогей БК01Ц
    от Mick в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 13.12.2007, 12:16

Ваши права

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