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

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 49

Тема: Basic 48 с подсветкой синтаксиса

  1. #31
    Junior Аватар для Misha Pertsovsky
    Регистрация
    11.05.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    17
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Шикарная идея для чтения программ с большим потенциалом. Спасибо!
    В то же время возможны проблемы с раскраской текста прямо в PRINT
    Для примера вот накалякал от балды снапшот :-)
    https://files.fm/u/rsqyy2yp

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

  3. #32
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    Товарищи, нет ли под винду, линукс или макос такого дизассемблера, чтобы был в курсе про вызовы ПЗУ и специфику ZX Spectrum?
    на форуме есть же полный дизасм ПЗУ - откоментирован и переведён даже.

  4. #33
    Junior Аватар для Misha Pertsovsky
    Регистрация
    11.05.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    17
    Спасибо Благодарностей отдано 
    54
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    ...между прочим, если отображать номер строки не цифрами, а A-Za-z0-9 разных цветов INK и PAPER, то хватит всего двух знакомест, что сэкономит экран для кода и радикально улучшит читаемость исходника.
    Вообще не отображать, кроме строк куда идет переход. Но, боюсь, это уже не влезет в ПЗУ..

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

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    2) Можно проверять, если цветовой код внутри кавычек (т.е. это текст), то не подавлять его.
    В режиме редактирования в кавычках высвечивать реальные цвета, а в режиме просмотра в кавычках писать код цвета. Имхо, это будет универсальным решением, иначе будет непонятно откуда взялись эти цвета на экране (при работе программы), а это удобный способ расцветить вывод. (мы исходим из того, что это ПЗУ стоит постоянно -- если же его переключать с обычным, то вопрос снят сам собой).

  5. #34
    Master
    Регистрация
    30.11.2016
    Адрес
    г. Москва
    Сообщений
    514
    Спасибо Благодарностей отдано 
    160
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а зачем двоеточия с двух сторон от THEN в операторе IF?

  6. #35
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужна утилита, которая бы оптимизировала бейсик. Т.е. утилита, которая бы в программе все нули заменяла на NOT PI, все двух-трёхзначные числа на что-то типа CODE "o" (вместо o любой символ или токен). Все прочие числа обрамляла бы в VAL "число".
    1=SGN PI
    2=PI-SGN PI
    3=PI
    4=PI+SGN PI
    5=?
    6=PI+PI
    36=PI^PI ну и т.д., в том числе можно юзать синусы, косинусы и т.п. корни.

    Но утилите нужно указывать диапазоны строк, где будет произведена оптимизация, потому что не во всех строках нужна такая оптимизация, ибо она крадёт скорость у и без того тормознутого во всю голову бейсика.
    Куплю корпус и материнку от Spectrum +2/+3

  7. #36
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,784
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    1,187
    Поблагодарили
    781 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    такие утилиты есть (только я названия сходу невспомню).
    вот пример такой оптимизации
    http://www.worldofspectrum.org/infos...cgi?id=0015662

    Последний раз редактировалось goodboy; 08.05.2018 в 11:31.

  8. #37
    Master
    Регистрация
    30.11.2016
    Адрес
    г. Москва
    Сообщений
    514
    Спасибо Благодарностей отдано 
    160
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZX_NOVOSIB, а можно подробнее раскрыть смысл такой оптимизации?

  9. #38
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Гаррий, Легко:

    Цитата из книжки про бейсик:

    Существенный недостаток ZX Spectrum — относительно малый
    объем свободной памяти (около 40 килобайт). А тут еще интерпре-
    татор Бейсика «транжирит» память: под запись любого числа ин-
    терпретатор отводит 6 ячеек памяти независимо от размера числа.

    Под каждый символ отводится 8 ячеек памяти.

    ** Более подробно о подключении альтернативных шрифтов см. [1].

    Даже если это просто единица или ноль. Вот и приходится про-
    граммистам, работающим на Бейсике, изощряться, чтобы втис-
    нуться в узкие рамки памяти Speccy.

    Прежде всего надо расширить область памяти, отведенную для
    работы бейсик-программы. Границы, в которых может размещать-
    ся программа с переменными, определяются компьютером, но мо-
    гут быть изменены. Старший адрес памяти, разрешенный к ис-
    пользованию интерпретатором Бейсика, хранится в системной пе-
    ременной RAMTOP (23730/31). Стандартно он равен 65367. Но
    если программа не вмещается, его можно увеличить до предела —
    до 65535*. Для этого нет необходимости записывать новое значе-
    ние RAMTOP с помощью РОКЕ. Изменить RAMTOP можно с по-
    мощью специально предназначенного для этого оператора CLEAR с
    параметром 65535. Правда, CLEAR к тому же очистит все перемен-
    ные, массивы, выполнит операторы CLS и RESTORE, вообще подгото-
    вит программу к новому пуску.

    Если и после перемещения RAMTOP не хватает памяти, при-
    дется применять более изощренные методы.

    Приведем несколько самых распространенных способов ,сжатия
    бейсик-программ. Хотя в этой области нет предела для фантазии.

    Во-первых, надо свести к минимуму длину имен всех числовых
    переменных. Если их меньше, чем букв в алфавите, то все сделать
    однобуквенными.

    Памятуя, что числовые константы занимают много места, не
    помешает самые часто используемые из них заменить на перемен-
    ные. Надо только единожды в начале программы присвоить им
    требуемые значения.

    Целые числовые константы выгоднее записывать как символь-
    ные и помещать их «под» функцию VAL. К примеру, операторы
    LET а=5 и LET a=VAL "5" тождественны, однако второй оператор
    занимает в памяти на две ячейки меньше (но, следует учесть,
    работает медленнее).

    Для сокращения объема памяти, занимаемого программой, бы-
    вает полезно вместо числовых массивов использовать символьные.
    Ведь под каждый элемент числового массива, независимо от того,
    что в нем хранится, отводится по пять ячеек памяти, в то время, как
    под элемент символьного массива отводится лишь одна ячейка.
    Преобразовать же символьную константу в число можно с по-
    мощью той же VAL.

    И, напоследок, парочку «хитростей». Например, вместо нуля,
    который, как и любое число, занимает в памяти 5 байт, можно
    записать просто BIN, либо NOT PI. Число «пи» отлично от нуля, и это
    главное, а логический оператор NOT, по определению, превращает
    его в ноль. Внешне получилось длиннее и мудреней, но в памяти,
    тем не менее, такая запись займет лишь две ячейки. Вывернув-
    шись, можно «смоделировать» и единицу. Например, записав
    NOT BIN либо SNG PI.
    [свернуть]
    Куплю корпус и материнку от Spectrum +2/+3

  10. #39
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,198
    Спасибо Благодарностей отдано 
    430
    Спасибо Благодарностей получено 
    220
    Поблагодарили
    131 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    вместо нуля, который, как и любое число, занимает в памяти 5 байт, можно записать просто BIN
    Цитируя, думайте!
    Нажмите на изображение для увеличения. 

Название:	bin.png 
Просмотров:	186 
Размер:	859 байт 
ID:	65215
    В правильно заданном вопросе содержится половина ответа

  11. #40
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,188
    Записей в дневнике
    39
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    33 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    not pi, не?

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

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

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

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

Похожие темы

  1. Ответов: 4
    Последнее: 12.04.2017, 19:39
  2. Изучаем BASIC
    от Djoni в разделе Программирование
    Ответов: 5
    Последнее: 20.06.2015, 17:08
  3. LASER BASIC
    от VETER в разделе Программирование
    Ответов: 8
    Последнее: 04.01.2015, 04:48
  4. Программы на BASIC
    от form в разделе ДВК, УКНЦ
    Ответов: 14
    Последнее: 17.04.2010, 15:41

Ваши права

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