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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: Спектрум-бейсик, где почитать?

  1. #1
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Спектрум-бейсик, где почитать?

    День добрый.
    Подскажите пожалуйста, где на русском почитать о том, как работает спектрум-бейсик?
    Выполнение команд интересует прежде всего, в частности - каков алгоритм команды GOTO, каким образом вычисляется адрес строки для перехода в процессе интерпретации?

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

  3. #2
    Banned
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,208
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    46 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наверху, в шапке есть ссылка zxpress.ru это твой шанс, наверное.
    Для более углубленного изучения механизмов работы есть The Complete SPECTRUM ROM DISASSEMBLY на инглише.

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

    Кстати,, не знаю, где книга мелькала, но кое-что на русском.
    обработка GO TO по адресу $1E67
    http://rgho.st/6LZffj8Wf

  4. #3
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,676
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    323
    Спасибо Благодарностей получено 
    222
    Поблагодарили
    175 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну елси дело только в диз-асме, то вот коллективное творчество сознательной части форума
    https://zx-pk.ru/threads/14994-kniga...a-russkom.html
    Давнооооооо это было (с)
    Profi v3.2 -=- Speccy2010,r2

  5. #4
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    ну елси дело только в диз-асме, то вот коллективное творчество сознательной части форума
    https://zx-pk.ru/threads/14994-kniga...a-russkom.html
    Давнооооооо это было (с)
    Спасибо большое )
    А то кроме как воткнутся в первую по счету строку и пропрыгать до нужной (используя длину каждой строки) больше ничего на ум не приходит из дешевых вариантов (что бы не хранить в памяти адреса каждой строки и не маяться с ними при вставке строки куда-нибудь посередине). Надо умных людей почитать, как у них это сделано было ))
    Последний раз редактировалось Dr.Potapov; 25.02.2019 в 21:03.

  6. #5
    Banned
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,208
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    46 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    танцы отсюда:
    https://skoolkid.github.io/rom/asm/1E67.html

    выведут сюда:
    https://skoolkid.github.io/rom/asm/196E.html

    но это навскидку, нужно проверить.

    По идее вряд ли адреса хранятся, токены не просто так придуманы.

  7. #6
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    танцы отсюда, выведут сюда
    но это навскидку, нужно проверить.
    Да, вижу, они тоже не особо парились:
    "Now enter a loop to test the line number of each line of the program against the given line number until the line number is matched or exceeded"
    Заходим в цикл и сверяем номер каждой строки программы с искомым номером строки, пока номер строки не совпадет или не будет превышен.

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

    По умолчанию

    в описании `надстройки` BetaBasic прямо сказано что goto/gosub/return работают гораздо быстрее

  9. #8
    Member Аватар для Dr.Potapov
    Регистрация
    31.10.2006
    Адрес
    г. Воронеж
    Сообщений
    75
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    в описании `надстройки` BetaBasic прямо сказано что goto/gosub/return работают гораздо быстрее
    Всмысле?

    Есть еще одна мысль - закешировать последние 5-10 гоутушек и искать прежде всего в кеше. Там получается 2 байта на номер строки и 3 байта на адрес для интерпретатора (у меня тут 24бит адресация), итого 5 байт на запись или 50 байт на кешик из десяти последних гоутушек. Не нашел строку в кеше - переберем все.

  10. #9
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В кэше "10 последних" искать долго и сложно, в цикле. Номера, кстати, можно не хранить, просто перебрать адреса и брать номера строк оттуда.

    16 (32, 64...) элементов по 3 байта (только адрес).
    Нужна строка N. Берём из кэша элемент "(N+(N shr 8)) and 15", если по этому адресу нужная строка - ок, если другая - ищем нужную и заносим в этот элемент кэша.
    Последний раз редактировалось Bolt; 26.02.2019 в 15:11.

  11. #10
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,103
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    70 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Dr.Potapov, цимес в том, что команды прехода в SOS могут использовать, как непосредственно числовые значения в качестве параметров, так и переменные, либо логически-математические выражения.

    Цитата Сообщение от Dr.Potapov Посмотреть сообщение
    кроме как воткнутся в первую по счету строку и пропрыгать до нужной (используя длину каждой строки) больше ничего на ум не приходит из дешевых вариантов
    Чем плох такой вариант? Самое, главное, зачем изобретать велосипед?!
    Попытайтесь внятно формализовать задачу - зачем вам это надо. Возможно проще будет написать программку, для формирования где-нибудь в ячейках паямяти массива адресов переходов команд GOTO перед финальным сохранением программы?

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

    Цитата Сообщение от Bolt Посмотреть сообщение
    Нужна строка N. Берём из кэша элемент "(N+(N shr 8)) and 15", если по этому адресу нужная строка - ок, если другая - ищем нужную и заносим в этот элемент кэша.
    Прикол в том, что аргумент перехода на строку может ссылаться на строку с номером, которого нет. При этом будет выполнен переход к следующей ближайшей за ней.
    Когда есть, но не знаешь где - это все равно, что нету.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Схема ZX-Спектрум совместимого компьютера "Бейсик"
    от Gryphon в разделе Несортированное железо
    Ответов: 9
    Последнее: 07.08.2021, 08:37
  2. Почему Спектрум-бейсик такой медленный?
    от mmxdmv в разделе ZX Концепции
    Ответов: 53
    Последнее: 07.07.2018, 19:39
  3. Ответов: 17
    Последнее: 18.06.2013, 17:10
  4. Где можно почитать про 16c ???
    от black_ninja в разделе Программирование
    Ответов: 32
    Последнее: 26.03.2008, 23:48
  5. Ответов: 10
    Последнее: 03.07.2007, 17:02

Ваши права

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