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

User Tag List

Страница 34 из 34 ПерваяПервая ... 3031323334
Показано с 331 по 337 из 337

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

  1. #331
    Master Аватар для Prusak
    Регистрация
    28.02.2005
    Адрес
    г.Минск
    Сообщений
    624
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сначала инициализировал системные переменные (взял код из ПЗУ по адресам по адресам 11EF-12A2).

    Дальше взял кусок кода из процедуры LD-PROG. Формирую header бейсик файла, подставляю туда нужные данные (длина файла, длина бейсик-части, стартовая строка), дальше, если я правильно понял, в коде резервируется место для альтернативного header'а, куда сохраняются данные о текущей бейсик-программе в памяти, на основании которых удаляется текущая бейсик-программа и резервируется место для новой программы.

    Потом загружаю бейсик программу в нужные адреса памяти, загружаю указатель стека из системной переменной ERR-SP: LD SP,(23613) и делаю переход на 0x1B7d, "STMT-R-1".

    Программа запускается (у меня простейшая программа, выводящая числа на экран в цикле). Но как только я её останавливаю через Break, всё виснет.
    Заяц-прусак
    zxbyte.ru- компьютер Байт и прочий хлам

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

    Barmaley_m (18.10.2020)

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

  4. #332
    Master
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    985
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно. В таком случае, думаю, нужно после LD SP,(23613) сделать следующее:
    Код:
    POP HL
    LD HL,1303H ; MAIN-4 Error entry point
    PUSH HL
    JP 1B7DH
    тем самым прописывается нужный адрес возврата при ошибке (в том числе 0 OK).

  5. #333
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,776
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    39 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько я помню по книге "Как написать игру на ассемблере", при выходе в Бейсик нужно восстанавливать регистровые пары IY и HL' вроде. Но лучше уточнить в книге.
    Последний раз редактировалось Andrew771; 18.10.2020 в 00:37.

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

    Barmaley_m (18.10.2020)

  7. #334
    Master
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    985
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    при выходе в Бейсик нужно восстанавливать регистровые пары IY и HL'
    Хорошо, что напомнил. Устанавливать IY на значение 0x5C3A - это, конечно, необходимо при любых делах с бейсиком. Даже при работе прерываний для опроса клавиатуры бейсик использует этот регистр и требует, чтобы в нём содержалось это значение.

    Но вот насчёт HL' - это зависит от точки входа в бейсик. Вероятно, в книге "Как написать игру" имелся в виду возврат из функции USR - а это происходит куда-то в недра "калькулятора" и процедуры вычисления выражений. Вход же в бейсик на точку STMT-R-1 - это совсем другое дело, и там содержимое регистра HL' роли не играет.
    Последний раз редактировалось Barmaley_m; 18.10.2020 в 11:51.

  8. #335
    Master Аватар для Prusak
    Регистрация
    28.02.2005
    Адрес
    г.Минск
    Сообщений
    624
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Устанавливать IY на значение 0x5C3A - это, конечно, необходимо при любых делах с бейсиком. Даже при работе прерываний для опроса клавиатуры бейсик использует этот регистр и требует, чтобы в нём содержалось это значение.
    Да, этот момент я помню, и, если мне память не изменяет "правильное" значение для IY устанавливается при инициализации системных переменных.
    Заяц-прусак
    zxbyte.ru- компьютер Байт и прочий хлам

  9. #336
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    828
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    51
    Поблагодарили
    27 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А почему не посмотрите архив исходников TR-DOS Navigator'а?
    Там как-раз так BASIC-программа и запускается.
    Файл TRDNC.ASM: процедура EXIT.
    Файл COMMENTS.TXT: описание в разделе "Запуск файлов и выход из TRDN".

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

    Prusak (22.10.2020)

  11. #337
    Master
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    985
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    А почему не посмотрите архив исходников TR-DOS Navigator'а?
    Дело в том, что из бутов, коммандеров и навигаторов программа часто запускается путём исполнения команды "RUN" в TR-DOS. Это самый простой способ. И тогда уже TR-DOS занимается выделением памяти и запуском, а не коммандер. Если ты уверен, что в коммандере программа запускается именно на низком уровне, наподобие того, как я рекомендовал - то подскажи. В противном случае жизни не хватит копаться во всех коммандерах и разочаровываться.

    Prusak, как твои успехи? Ты поборол проблему сбоя по завершении программы?

Страница 34 из 34 ПерваяПервая ... 3031323334

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

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

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

Похожие темы

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

Ваши права

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