User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 49 из 49

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

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

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

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

    По умолчанию

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

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

  3. #2

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

    По умолчанию

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

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

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

  4. #3

    Регистрация
    30.11.2016
    Адрес
    г. Москва
    Сообщений
    533
    Спасибо Благодарностей отдано 
    181
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    Для монотонности. Эти двоеточия можно вообще убрать, но так код выглядит целостным.
    Имхо, увлеклись двоеточиями и их форматированием. У них есть смысл в исходном синтаксисе. Теперь он утрачен. Но это лишь одно мое субьективное мнение ) Зато все остальное очень круто получилось.

  5. #4

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    В загрузчике все эти NOT PI может и оправданы.

    А в программе не проще определить переменную и использовать?

    "10 LET Z=0" сколько займет, 15 байт? Если приделать к какой-нибудь строке, то еще меньше, 10 байт. Зато остальной код читаемый и без ненужных вычислений.
    Причем, BORDER NOT PI выполняется почти в два раза медленнее, чем BORDER 0, что визуализировано на этом скриншоте:

  6. #5

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

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    просто не понимаю, как например перехватывать LIST
    1. Дизасмить код Laser Basic, смотреть как сделано там. Я баловался таким году в 1999.
    2. Попробовать найти тред про это же самое здесь. Я натыкался случайно и совсем даже не помню по каким ключевым словам искать.

    Идея проста. В ОЗУ перекидывается MAIN_LOOP и код нескольких операторов, которые возвращаются не по ret, а прямым переходом в MAIN_LOOP. Патчатся адреса, и вуаля - интерпретатор в ОЗУ. Дальше в нем можно менять что угодно. ПЗУ остается фирмовым. Но отжирается место в ОЗУ. ИМХО, в пределах 3-5 килобайт.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  7. #6

    Регистрация
    03.03.2008
    Адрес
    Петербург
    Сообщений
    279
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    eugeniusz, если сделать вариант Вашей программы для загрузки в ОЗУ?
    Да, это займет место в ОЗУ, но зато можно будет сделать отступы для блоков FOR-NEXT и IF-THEN.
    Добавить команды редактирования.
    Пользователи реалов смогут легко воспользоваться сервисом редактирования, предоставляемым Вашей программой.
    Типа как в ZXED Spectrum Toolkit:

    Скрытый текст

    Код:
    A ALTER		- searches for and then replaces a string of
    		  characters. You specify both the original
    		  and the new string, and the range of line
    		  numbers where the changes are to be
    		  made. See also VERIFY below.
    B BYTES		- tells you how much free memory space is
    		  available for your program/variables.
    C COPY		- duplicates lines of your program. You
    		  specify the range of lines to be copied
    		  and where they are to be placed.
    D DELETE	- deletes a block of lines from your
    		  program. You specify the range of lines
    		  to be deleted.
    F FIND		- finds a string of characters. All lines
    		  containing the specified string are listed
    		  to the screen.
    H HELP		- gives a menu of the options available
    		  along with a brief description of the
    		  Function.
    L LINE		- returns the address of a specified line. This
    		  address is the first character of the line.
    M MOVE		- as for COPY, except that the original lines
    		  are DELETED thus effectively moving
    		  lines from one part of your program to
    		  another.
    P APPEND	- appends a specified string to lines.
    R RENUMBER	- renumbers the line numbers of your
    		  program, including GOTO and GOSUB
    		  references. Will also amend the references
    		  for LIST, LLIST, RESTORE, RUN and
    		  SAVE ... LINE.
    		  You specify the start and end line
    		  numbers, the new base line number and
    		  the increment step.
    S SEQUENCE	- gives AUTO LINE NUMBERS, which is
    		  very useful for entering long programs.
    		  You specify the starting line number and
    		  the increment.
    V VERIFY	- when ON, will list all lines containing the
    		  string replaced by ALTER. When OFF,
    		  no listing is produced, just the total
    		  number of changes made in confirmation
    		  of successful amendments or otherwise.
    [свернуть]


    Переделать, наверно, можно ПЗУ-128. Такие переделки уже были - Basic-128 заменялся на коммандер.

    Скрытый текст

    Можно было бы оставить дизайн меню, пункты указать:
    128 TR-DOS
    48 TR-DOS
    48 BASIC
    48 BASIC+
    Остальное место использовать как электронный диск.
    При выборе 48 BASIC+ в ОЗУ копируется программа, расширенного редактора и подключается ПЗУ BASIC 48.
    При простом выборе пунктов TR-DOS, происходит переход в ДОС, при, например, нажатой клавише SYMBOL SHIFT из ПЗУ в ОЗУ загружается и запускается какой-нибудь бут (типа односекторного) или лучше с возможностью выбора диска.
    [свернуть]

  8. #7

    Регистрация
    12.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SaintTurnip Посмотреть сообщение
    "10 LET Z=0" сколько займет, 15 байт? Если приделать к какой-нибудь строке, то еще меньше, 10 байт. Зато остальной код читаемый и без ненужных вычислений.
    10 LET Z=NOT PI

    * Простите за некропостинг, но не смог удержаться :-)

  9. #8

    Регистрация
    30.11.2016
    Адрес
    г. Москва
    Сообщений
    533
    Спасибо Благодарностей отдано 
    181
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 5 из 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

Ваши права

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