Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 34

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

  1. #11
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alm604 Посмотреть сообщение
    Если ее не отбрасывать, то придется сдвигать при изменении размера, что еще дольше, чем считать введенные/удаленные символы.
    Вопрос: предполагается добавление текста не только в конец файла, или только в конец?

  2. #12
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    830
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    131
    Поблагодарили
    109 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alm604 Посмотреть сообщение
    Лежит у меня MCS-251. Там примерно так же - пара DPTR, адресация шире, RAM больше и по даташиту "До 15 раз быстрее обычных MCS-51". Кроме того, в примененном мною P80C32UFPN, оказывается, тоже пара DPTR. Но, так как я эту плату сделал как раз для изучения семейства, я об этих нюансах узнал лишь недавно. Переделывать под MCS-251 пока не хочется. Задрать частоту до допустимых 33МГц желание есть, но не уверен в работоспособности UART. Пока у меня автоопределение BAUDRATE. Кажись переписывать придется. Либо цеплять внешнюю 16C550 или Z8523016. И тех и других - горсть. Но всё не покидает чувство, что надо использовать проц, а не МК и не страдать фигней))) Останавливает только удобный монитор. Под Z80 я такого пока не нашел, не говоря уж о других процах.

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

    И еще огромный запас P80C552EBA, 74HC573 и кварцев на 11,0592)))))
    Лично мне не нравятся АРМ и еже с ними (звук не ламповый). 51 семейство обширное и много разных видов одного типаразмера (что дип что плсс - пин-то-пин), на асме писать просто. куча встроенной периферии + озу+флеш (не мегобайты - но всё же). Вот "сейчас" надо доработать программу 15-летней давности. 8кб кода на асме. Изделие работает по 24 часа 365 дней в году (утрировано).
    семейство 251 загнулось на корню - его практически никто не "скопировал". а 51 живо и здорово нынче.

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

    По умолчанию

    Конечно, добавление и удаление может быть в любой части памяти (файла).
    Мне после AVR, STM тоже понравился 51-й. Особенно тем, что работает, как процессор. Пусть и с костылём (RD || PSEN)

  4. #14
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тогда в любом случае идёт довольно обширное копирование внутри памяти.
    Почитай тему Как организовать память для текстового редактора?. В зависимости от подхода к организации памяти будет понятно, как эффективнее определять размер получившегося файла.

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

    По умолчанию

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

  6. #16
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если изначально ввести ограничение на максимальный размер файла, всегда заведомо меньший объёму ОЗУ, то задача вполне посильная. И уж точно производительности "полстапервого" с кварцем "110592" вполне за глаза.

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

  8. #17
    Master
    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    967
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

    По умолчанию

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

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

    По умолчанию

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

  11. #20
    Master
    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Даже одного DPTR более чем. Просто не нужно стесняться делать "телодвижения" - производительности хватит за глаза.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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