User Tag List

Страница 14 из 43 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 427

Тема: Бейсик-помощь

  1. #131

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,116
    Спасибо Благодарностей отдано 
    162
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну чтож, по сравнению с тем что было мне удалось освободить 1090 байт (убрал текст из REM коментариев).
    думаю этого хватит, возможно позже ещё проведу кое-какую оптимизацию.
    вот что получилось.
    Rararura 1.5.1 версия:
    - оптимизация.
    - исправил досадную ошибку (удивляюсь как я её раньше не замечал) с отрисовкой сетки 8х8 для символов.
    - добавил сохранение снимка памяти (записывается всё вместе - screen, udg-symbols, text, fonts) в один файл на ленту, размером 3706 байт.
    - сохранение снимка памяти (при вопросе "save udg symbols ? y/n" нажмите "*")
    - загрузка снимка памяти (при вопросе "Load udg symbols y/n" нажмите "*")
    - очистка (удаление) всех udg-символов.
    - создание нового шрифта из udg-символов (можно потом использовать хоть в art studio, хоть где-то ещё).
    чтобы создать новый шрифт вам придётся использовать пять ! наборов udg-символов по 168 байт, созданных вами или загруженных откудато ещё.

    вроде-бы это всё, дальнейшее развитие программы наверно бессмысленно (или невозможно).
    хотя, всякое бывает, если удастся освободить места намного больше, то...
    Последний раз редактировалось ZEman; 19.09.2016 в 16:46.

  2. #132

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEman Посмотреть сообщение
    вроде-бы это всё, дальнейшее развитие программы
    Похоже, где-то нелатиницей сообщения написаны.

  3. #133

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,116
    Спасибо Благодарностей отдано 
    162
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Странно, если смотреть через эмулятор в снапшоте или тапке то такой ошибки в тексте нет.
    Видимо здесь виноват Punto switcher - очень полезная, хотя иногда и вредная прога.

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

    Мне интересно вот что.
    Объясню на простом примере.
    Допустим в какойто проге используется 10 переменных (let, for и.т.д.)
    Каждая из этих переменных оперирует числами от 1 до 100.
    Там установлен clear - допустим 60000.
    а теперь собственно вопрос - 10 переменных по (максимум) 100 байт - это в пределах одного килобайта получается.
    Так-вот будет там свободное место всегда, в любом случае уменьшаться до конца (out of memory) или же место будет отедаться только в определённом куске памяти в пределах одного килобайта ?
    Последний раз редактировалось ZEman; 19.09.2016 в 17:20.

  4. #134

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    для хранения чисел в-памяти используется 5ти байтная форма.
    любая переменная в памяти займет (5+длина её имени).

    на этом способе основана экономия памяти и защита/запутанность программ.
    на экране видим print usr 0
    а в пятибайтной форме скрыто совсем иное число.
    (выше я показал как можно все цифры скрыть точками)
    Последний раз редактировалось goodboy; 19.09.2016 в 20:59.

  5. #135

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEman Посмотреть сообщение
    Так-вот будет там свободное место всегда, в любом случае уменьшаться до конца (out of memory) или же место будет отедаться только в определённом куске памяти в пределах одного килобайта ?
    В твоей формулировке "до конца". Текст программы и переменные хранятся в общем пространстве памяти, отдельных лимитов для переменных нет. Область переменных идет за текстом программы и двигается к старшим адресам при добавлении новых строк. При выполнении DIM, LET, FOR, INPUT BASIC выполняет присваивание и, если находит переменную подходящего типа, копирует новое значение поверх старого, если не находит - создает новую переменную (и увеличивает занятую ими область вплоть до out of memory). Крмое того, за областью переменных следует так называемая рабочая область, в которой хранятся значения переменных сложных типов (строки, массивы). Так что out of memory может случаться при присваивании даже если переменная уже есть, но стала "больше" (строка длиннее, массив больше).
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  6. #136

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    точечный оптимизатор сокращает прогу примерно на 1600байт
    а где такой надыбать можно?

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

  8. #137

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,116
    Спасибо Благодарностей отдано 
    162
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эмм..
    То есть, если я правильно понял, память в процессе работы любой программы всёравно неизбежно уменьшается, так ?
    Но в таком случае, уменьшение размера любой программы бессмысленно, всё-равно в итоге будет "out of memory".
    Как-же тогда поступают другие, есть способ очистки данных ?
    Можно конечно использовать clear или run, но тогда все переменные полетят к чертям.

  9. #138

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    1,336
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEman Посмотреть сообщение
    память в процессе работы любой программы всёравно неизбежно уменьшается
    Ответ уже есть
    Цитата Сообщение от Alex Rider Посмотреть сообщение
    выполняет присваивание и, если находит переменную подходящего типа, копирует новое значение поверх старого
    - - - Добавлено - - -

    Просто не делай:
    10 go sub 10
    или
    10 let a$=a$+" go!": goto 10

  10. #139

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати, чутка ускорить (особенно в циклах) работу бейсиковой программы можно,
    если использовать
    а) однобуквенные переменные
    б) переменные в верхнем регистре
    в) правильно расположив порядок декларации переменных (чтобы часто используемые находились быстрее)
    г) в циклах использовать подмену системной переменной, которая хранит адрес следующей строки (подробности тут)

  11. #140

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,116
    Спасибо Благодарностей отдано 
    162
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    После работы приду, повожусь ещё с программой.
    Уберу не только комментарии но и сами remы - это даст ещё байт 400, а потом надо будет сокращать некоторые переменные до одного символа.
    Во всех for буду по возможносьти использовать какую-то одну букву.
    Но, я думаю и так работы программы хватит на долго.

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

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

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

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

Похожие темы

  1. Руссифицированный бейсик
    от Den1982 в разделе Программирование
    Ответов: 17
    Последнее: 23.02.2022, 22:58
  2. Специалист: Бейсик
    от Prusak в разделе Специалист
    Ответов: 28
    Последнее: 26.07.2019, 16:07
  3. Про бейсик
    от yur в разделе Программирование
    Ответов: 23
    Последнее: 17.02.2014, 21:26
  4. напомните про бейсик
    от goblinish в разделе Программирование
    Ответов: 7
    Последнее: 22.06.2012, 06:14

Ваши права

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