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

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 26

Тема: Почему не стартует TR-DOS если только она и зашита в ПЗУ?

  1. #11
    Member
    Регистрация
    08.12.2009
    Адрес
    Харьков
    Сообщений
    41
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И тогда "блок согласования синтаксиса" (а он вроде реально присутствует в коде, но внимательно еще не смотрел)-бесполезная штука? Т.е.всегда будут в TR-DOS прилетать токены 48-го?
    Какая-то "мутная тема" с этим "Basic 128", и вправду... опять же, а если в ходе работы basic 128 дойдет в ПЗУ до 15616, железу ничего не останется, как вывалиться в TR-DOS. Вполне аппаратно заменив ПЗУ...

  2. #12
    Veteran Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    1,994
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    153
    Поблагодарили
    68 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от idc Посмотреть сообщение
    Какая-то "мутная тема" с этим "Basic 128", и вправду... опять же, а если в ходе работы basic 128 дойдет в ПЗУ до 15616, железу ничего не останется, как вывалиться в TR-DOS. Вполне аппаратно заменив ПЗУ...
    А вот для этого как раз переключение пзу на трдос должно быть из 48-го бейсика - в проверке участвует сигнал ROM из регистра порта 7FFD
    Все любят гипножабу

  3. #13
    Member
    Регистрация
    31.07.2006
    Адрес
    Kharkov Ukraine
    Сообщений
    172
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    43
    Поблагодарили
    23 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    собственно по этой причине контроллеры версии 5.x и называются "BETA 128", т.к. совместимы со 128К моделями спектрумов, в отличие от предыдущих версий железа и софта (TR-DOSа) версий 4 и ниже.

  4. #14
    Member
    Регистрация
    08.12.2009
    Адрес
    Харьков
    Сообщений
    41
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно уточнить, по какой "по этой"? Контроль сигнала ROM, подключающего 128ПЗУ?

    Есть у меня "умная мысль", но пока негде попробовать... возможно, есть разница между непосредственной отработкой команды в редакторе 128, т.е.когда по буквам пишешь RANDOMIZE USR 15616 без номера строки и нажимаешь ENTER - и переключение произойдет, т.к.команда отработается через 48К, а другой вариант-это когда в редакторе 128 пишешь программу с номером строки: 10 RANDOMIZE USR 15616, ENTER, она записывается в память.
    А потом пишешь RUN-то вот тут не произойдет переключения.

    Если есть у кого-то возможность проверить такое на железе-сообщите результат.

    Интересует 2 действия:

    1.В редакторе 128 просто набрать (без номера строки)
    2.В редакторе 128 набрать с номером строки, ввести, как программу, а потом запустить её RUN

  5. #15
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    12,521
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    633
    Поблагодарили
    436 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от idc Посмотреть сообщение
    Есть у меня "умная мысль"
    на самом деле она глупая.
    usr addr выполняется из 48ого бейсика !!!
    и неважно в каком виде это представлено.

  6. #16
    Member
    Регистрация
    08.12.2009
    Адрес
    Харьков
    Сообщений
    41
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну ок, глупая-так глупая... Значит не зря в кавычках написал. Я эту мысль "притянул за уши" из статьи в Радиолюбителе 3/94 "Драйвер EPSON-совместимого принтера для ZX-SPECTRUM"
    Там автор пишет о разнице обработчиков команд непосредстенного режима редактора и вызывающихся из программы-у него его реализация LLIST из редактора нормально печатает токены в виде слов, а из программы-печатаются коды токенов. Это вообще всё не про TR-DOS ни разу, но мысль навеяло...

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

  8. #17
    Member
    Регистрация
    08.12.2009
    Адрес
    Харьков
    Сообщений
    41
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде бы проясняется... термин BASIC 128 не очень удачный. Уместнее говорить, что пока выбрано ROM-0 запустить TR-DOS нельзя и это реализовано аппаратной дешифрацией с учетом 5-го разряда порта 0x7FFD. Когда именно выбрано ROM-0, а когда - ROM-1 - дело "очень тонкое"... и к интерператору языка программирования БЕЙСИК отношение напрямую не имеющее, хоть 128К, хоть 48К версии. В ROM-0 по адресам входа в TR-DOS находится, начиная с 0x3CFE, процедура разбора строки, введенной в редактор-128 на соответствие синтаксису. Т.е. если гипотетичски некоторый код попытается, не переключив страницу ПЗУ, обратиться к 15616 и далее-вызов TR-DOS действительно не произойдет, т.к. 5-й разряд порта не даст.
    Другое дело, что обработка команд при работе интерпретатора БЕЙСИК сопряжена с переключениями страниц ПЗУ между ROM-0(там, откуда стартовали, где меню, 128К редактор и т.д.) и ROM-1(где немного изменённый традиционный 48К, который в основном команды и выполняет)
    Таким образом в момент выполнения любой команды даже из редактора 128 фактически, на момент работы, выбирается ROM-1, а 5-й разряд порта (регистра) дает затенять ROM-1 на TR-DOS.
    Для чего в самом коде TR-DOS обработка посимвольных команд и как они могут туда попасть-не очень пока понятно.

    Посмотрел прошивку ROM-0 Pentagon, там где TR-DOS в главном меню. Реализовано так: по адресу 0x3C16 (15382) в ROM-0 (т.е.той же странице, где меню и откуда стартуем) хранится строка в виде токенов RANDOMIZE USR VAL "15616". Эта строка после выбора пункта меню "TR-DOS" передается на исполнение интерпретатору, вызывая переключение страниц ПЗУ и разрешение затенения ROM-1. Вот это и имелось в виду, когда говорилось, что из BASIC 128 невозможно вызвать TR-DOS...
    Последний раз редактировалось idc; 13.03.2021 в 02:08.

  9. #18
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    12,521
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    633
    Поблагодарили
    436 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от idc Посмотреть сообщение
    Для чего в самом коде TR-DOS обработка посимвольных команд и как они могут туда попасть-не очень пока понятно.
    при наборе программы с вызовом из строки (в 128ом редакторе) после REM будут как раз символы, а не токены.

  10. #19
    Activist Аватар для Kalantaj
    Регистрация
    15.04.2008
    Адрес
    г. Кривой Рог, Украина
    Сообщений
    440
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    35
    Поблагодарили
    20 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    при наборе программы с вызовом из строки (в 128ом редакторе) после REM будут как раз символы, а не токены.
    Я бы сказал что не совсем так. При вводе строки бейсик программы в 128к редакторе, в отличии от 48к редактора, причем неважно с номером она идет (для сохранения) или без номера (для непосредственного выполнения после нажатия Enter), ДО нажатия на ENTER вводимый текст никак не воспринимается как программа. Это обычный текст, который только при нажатии ENTER, перед сохранением или непосредственным выполнением будет "переведен" в программу, с проверкой синтаксиса и токенезированием. Текст идущий после команды REM останется в том виде, в котором он введён. Т.е. токенезации (преобразования текста в команду бейсика) происходить не будет. И команда бейсика LOAD будет храниться не одним байтом, а 5ю (с пробелом). Вот в ПЗУ trdos и предусмотрен этот момент- неважно в каком виде придет команда - в виде текста или в виде токена - она будет выполняться. Кстати в прошивке 5.04TM какой то косяк с выполнением нетокенезированных команд. Приходилось сохранять программу, загружать её в 48к и токенезировать все команды после REM и потом пересохранять, чтобы избежать "косяков". И да - проявляется это в том случае, если программы ещё и работают с RAM-диском 128к бейсика.
    Причем неважно есть 128к в компе или только 48 - посимвольно команды работают так же как и набранные токеном. Напимер находясь в trdos поставьте точку, потом наберите по буквам RUN и удалив точку впереди RUN нажмите ENTER - отработает компнда как обычно.
    Последний раз редактировалось Kalantaj; 13.03.2021 в 07:37.
    Мои спектрумы

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

    ZX-Evolution rev.C3 + NeoGs + SoundCardExtreme + MoonSound + ZiFi + VDAC2 + 3.5FDD + 5.25FDD (+HDD)
    Karabas Nano rev.C, rev.H
    Karabas PRO rev.C + WiFi module, rev.D alpha2
    ZX-UNO v4.2, ZX-UNO VGA 2M, ZX-UNO Pi
    2xROBIK 48k
    Pentagon 128k +5.25 FDD (хочет расширения всего чего можно )
    [свернуть]

  11. Этот пользователь поблагодарил Kalantaj за это полезное сообщение:

    idc (13.03.2021)

  12. #20
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    12,521
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    633
    Поблагодарили
    436 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kalantaj Посмотреть сообщение
    в прошивке 5.04TM какой то косяк с выполнением нетокенезированных команд. Приходилось сохранять программу, загружать её в 48к и токенезировать все команды после REM и потом пересохранять, чтобы избежать "косяков". И да - проявляется это в том случае, если программы ещё и работают с RAM-диском 128к бейсика.
    я помнится (с 5.04) на ровном месте столкнулся с отказом работы примерно такого загрузчика

    файлы на дискете
    NAME0
    NAME1
    .....
    NAME7

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

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

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

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

Похожие темы

  1. Ответов: 5
    Последнее: 15.02.2020, 02:28
  2. Ответов: 5
    Последнее: 27.06.2018, 16:50
  3. ZX-Spectrum (Львовский вариант) - не стартует при вставленных ПЗУ
    от andreysur в разделе Несортированное железо
    Ответов: 3
    Последнее: 07.07.2016, 22:23
  4. Зашита от записи в ZXMAK
    от zxmike в разделе Эмуляторы
    Ответов: 1
    Последнее: 16.08.2013, 18:17

Метки этой темы

Ваши права

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