User Tag List

Показано с 1 по 10 из 2014

Тема: Sprinter. Второе пришествие

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Теперь и тут немного побаяню
    Во вложении архив с обновлением для доса до версии 1.62.20.
    1. Заменил и исправил старые процедуры различных расчётов секторов и кластеров. Две процедуры заменил - div32 и nsector (деление 32бита и расчёт сектора из номера кластера). Ускорение приличное получилось. Особенно на nsector. Старая процедура циклом обходила обсчёт кластера. Чем больше размер кластера, тем тормознее она работала. Т.е. на 2гиговом разделе при кластере 64 сектора было 64 круга в цикле. Жесть какая-то. С делением тоже самое было. По старым тестам проводимым в прошлом году, на старых версиях (1.62.16 и т.д.) копирование файла 1.4 мегабайта проходило за 21 секунду. Теперь за 10 секунд.
    2. Выкинул из доса функции 0c и 0d, а так же утилиты ecache.exe и dcache.exe. Если кто будет обновлять - удалите эти две утилиты у себя.
    Тесты показали, что на текущей версии, от этих функций и утилит толку ровно 0. Ускорить можно ещё и чтение и запись, но только путём переписывания функций чтения и записи в досе. Биос пока не горю желанием трогать. При попытке обратиться к 0c и 0d будет возвращена ошибка "функция не существует".
    Для обновления нужно заменить на загрузочном диске файл system.dos с заменой файлом из архива.
    Так же приложу на всякий случай архив с flic плеером, который при запуске переносит в fast-ram кусок распаковщика flc кодека. Работает тоже быстрее оригинального плеера.
    Так же расшарю небольшой текст по работе экрана (с точки зрения программирования) и архив с исходником и пояснением шариков.

    В официальной документации есть информация о том, что при работе с графическим
    экраном есть несколько методов для вывода графики:
    - обычный;
    - прозрачный цвет;
    - временный;
    Режим включается через указание номера страницы в порт окна процессора. Известно,
    что для графического экрана у нас доступно 16 страниц с номерами 50h - 5fh.
    При этом по факту программист не участвует в переключении этих страниц. Нужно
    знать только одно, что в номере страницы биты 2 и 3 отвечают за режим вывода.
    3..2 = 0 = 50h обычный метод вывода. Все данные попадают на экран без исключения.
    bit3 = 1 = 58h режим прозрачного цвета. Цвет с номером FFh не выводится на экран.
    bit2 = 1 = 54h временный вывод на экран. Самый мутный режим и тут нужно немного
    пояснить как работает экран у Спринтера.

    Для работы с графикой на Спринтере установлена отдельная память - vram,
    т.е. видео-озу. По факту это sram, быстрая память. Экран устроен так, что при
    обычном методе или с приминением прозрачности все данные записываются и в vram
    и в ram (озу). Суть метода 3 в том, что когда он активен данные пишутся
    только в vram. Например, мы включили граф.режим, обычный метод и вывели фоновую
    картинку на весь экран. Потом включили бит3+бит2 и вывели какой-то спрайт.
    Координаты вывода мы запомнили. Потом нам нужно сдвинуть спрайт на сколько-то
    пикселей в сторону. Мы берём ранее сохранённые координаты, включаем обычный
    режим и делаем чтение и запись в те же координаты. Что получается в результате?
    Фоновая картинка была записана и в ram и в vram. Потом по методу 3+прозрачность
    мы вывели спрайт. Его данные попали только в vram, а в ram сохранена фоновая
    картинка. Когда мы снова включили обычный режим и сделали чтение, мы прочитали
    данные из ram, а потом записали их в vram и повторно в ram. Таким образом мы
    восстановили область под спрайтом. После этого можно рисовать спрайт в новых
    координатах. Замысел данного метода в том, что нам не требуется процедура
    и лишний буфер для сохранения фона (данные под спрайтом). Однако процедура
    которая будет восстанавливать этот фон, всё же нужна. При использовании
    акселератора это работает достаточно быстро. Биты 2 и 3 можно использовать как
    раздельно, так и совместно.
    Ближайшим примером работы всех этих режимов является демка balls.
    Вложения Вложения
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

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

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

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

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

Похожие темы

  1. Sprinter
    от lvd в разделе Sprinter
    Ответов: 42
    Последнее: 12.07.2015, 20:18
  2. Sprinter resurrection
    от WingLion в разделе Sprinter
    Ответов: 52
    Последнее: 10.01.2009, 00:32
  3. Sprinter или монитор?
    от newart в разделе Sprinter
    Ответов: 1
    Последнее: 03.02.2007, 09:45

Ваши права

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