User Tag List

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

Тема: Определить размер программы

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

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

    Регистрация
    03.04.2012
    Адрес
    г. Тюмень
    Сообщений
    51
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Офигеть! А про редактирование-то я вообще не думал, оказывается... Задача оказывается более сложной, чем кажется(

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

  3. #2

    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    971
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Задача на самом деле тривиальная.
    Часть текста до курсора хранится в начале памяти, часть после - в конце. Посередине дырка.
    Текст на экране отрисовывается от курсора вниз, и от курсора вверх. Вставка текста происходит в дырку. При навигации по тексту дырка перемещается вместе с курсором. При добавлании - добавляется в начало дырки, и дырка уменьшается, при удалении символов - дырка увеличивается.

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

    При выгрузке документ просто склеивается из двух кусков, чтобы дырки не было.
    Последний раз редактировалось ram_scan; 25.11.2016 в 11:03.

  4. #3

    Регистрация
    03.04.2012
    Адрес
    г. Тюмень
    Сообщений
    51
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вся проблема в том, то оперативы у 51-го маловато. Просто указатели я хранить постоянно не могу - DPTR всего два и то, это далеко не у всех 51-ых. Можно хранить в регистрах и подгружать в DPTR при необходимости, конечно, но это дополнительные телодвижения. Короче, я попробую. По-любому вопросы возникнут - напишу)

  5. #4

    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    alm604, два DTPR это более чем достаточно, с одним DTPR конечно придётся сначала пройтись по начальной или конечной половине текста, чтобы выяснить сколько байт нужно копировать, а затем уже копировать заталкивая по нескольку байт в стек или регистры. Вообще при прокрутке назад всё равно сначала нужно узнать сколько символов в предыдущей строке чтобы правильно выставить курсор в случае когда длина предыдущей строки больше ширины экрана. Хотя от предварительного прохода назад можно избавиться если вместо символа перевода строки в начальном блоке хранить длину строки перед символом перевода, а в конечном блоке длину строки после символов перевода, для текущей строки разумеется должна быть известна длина до и после курсора. Такой вариант позволит при предварительном проходе для прокрутки на одну строку или страницу не просматривать каждый символ строки а вычислить копируемую область на основе длин строк.

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

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

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

Похожие темы

  1. неправильный размер
    от ZEman в разделе Игры
    Ответов: 6
    Последнее: 26.07.2016, 20:16
  2. Увеличить размер PDF вложений
    от tnt23 в разделе Форум
    Ответов: 30
    Последнее: 01.08.2012, 08:20
  3. Ответов: 4
    Последнее: 05.05.2012, 22:39
  4. Размер игрового экрана Spectaculator7.01.1349
    от Constans Barron в разделе Эмуляторы
    Ответов: 7
    Последнее: 28.09.2010, 16:10
  5. Ограничение на размер картинки!
    от CHRV в разделе Форум
    Ответов: 2
    Последнее: 21.04.2005, 01:24

Ваши права

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