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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Basic прерывания

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,487
    Спасибо Благодарностей отдано 
    225
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Basic прерывания

    Что-то не могу сообразить, по каким словам гуглить, подскажите.
    1. Во время работы бейсика (как я понимаю), работают прерывания. Что и чем обрабатывается?
    Видимо (как минимум), идёт опрос клавиатуры и увеличивается переменная FRAMES. Что-то ещё?

    2. Какое минимальное значение можно задать в Clear, чтобы не порушилась работоспособность куска в машкоде, если работают стандартные прерывания? (скажем, на голом 48м)

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

  3. #2
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    219
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Что-то не могу сообразить, по каким словам гуглить, подскажите.
    1. Во время работы бейсика (как я понимаю), работают прерывания. Что и чем обрабатывается?
    Видимо (как минимум), идёт опрос клавиатуры и увеличивается переменная FRAMES. Что-то ещё?
    Стандартная процедура обработки прерываний в режимах IM0/IM1 находится в ПЗУ по адресу 56. В основном только опрос клавиатуры (остальное зависит от реализации), кроме нескольких системных переменных ничего не меняется.
    2. Какое минимальное значение можно задать в Clear, чтобы не порушилась работоспособность куска в машкоде, если работают стандартные прерывания? (скажем, на голом 48м)
    Адрес начала кода минус 1. А что до самого минимального - зависит от длины бейсик-части и области переменных
    Все любят гипножабу

  4. #3
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,487
    Спасибо Благодарностей отдано 
    225
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    А что до самого минимального - зависит от длины бейсик-части и области переменных
    ну, там минимальное
    clear val "xxxxx": load "" code: randomize usr val "yyyyy"

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

    Цитата Сообщение от null_device Посмотреть сообщение
    Режимы работы прерываний, неплохо описаны в книжке "... для пользователей и программистов".
    о, да, спасибо!

  5. #4
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    219
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    ну, там минимальное
    clear val "xxxxx": load "" code: randomize usr val "yyyyy"
    24000, думаю, хватит, (с натяжкой для TRDOS)
    Все любят гипножабу

  6. #5
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,910
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    ну, там минимальное
    Зависит от длины загрузчика. Подбирай методом тыка. Но да, где-то в районе 24000 для самого примитивного загрузчика.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Какое минимальное значение можно задать в Clear, чтобы не порушилась работоспособность куска в машкоде
    Как правило, код располагается в адресах "выше" значения переменной CLEAR. Есть, правда одна тонкость: некоторые процедуры "стандартного" ПЗУ приводят к увеличению стека, что может вызвать сообщение об ошибке (или порчу бейсик-программы, ее переменных и самого листинга).

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

  8. #7
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,487
    Спасибо Благодарностей отдано 
    225
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Побаловался. На 48й машине загрузчик вида

    10 clear val "23952": load "" code: randomize usr val "23953"

    нормально загружается в Spectaculator / EmuZwin и код стартует.
    Последний раз редактировалось Bedazzle; 06.08.2016 в 00:22.

  9. #8
    Master
    Регистрация
    17.05.2011
    Адрес
    Днепропетровск
    Сообщений
    520
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Побаловался. На 48й машине загрузчик вида

    10 clear val "23952": load "" code: randomize usr val "23953"

    нормально загружается в Spectaculator / EmuZwin и код стартует.
    Если это загрузчик или не большая программа, то кто мешает его залепить вообще в бейсик строку.

    типа
    10 rem ___________________________ и вместо ___ скомпилировать свой код туда.

    в хитрых загрузчиках делил строку вида

    0 RANDOMIZE USR 0: REM ________________________

    И меняли представление числа 0 на нужное :-)
    ZXM-Phoenix v.03/2048/FDD/HD/YM-2149F/PS2-kbd; U8EP3C development board БК-0011М by Woland + SMK 512

  10. #9
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,487
    Спасибо Благодарностей отдано 
    225
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от iceoflame Посмотреть сообщение
    Если это загрузчик или не большая программа, то кто мешает его залепить вообще в бейсик строку.
    Задача загрузить максимально большой кодовый блок на 48й машине, чтобы не порушились переменные (точно используются FRAMES и LAST_K).
    В проекте, который ковыряю, грузится начиная с 24100, но уже получилось чутка подвинуть.

  11. #10
    Master
    Регистрация
    17.05.2011
    Адрес
    Днепропетровск
    Сообщений
    520
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Задача загрузить максимально большой кодовый блок на 48й машине, чтобы не порушились переменные (точно используются FRAMES и LAST_K).
    В проекте, который ковыряю, грузится начиная с 24100, но уже получилось чутка подвинуть.
    Не поверите, экран тоже память, можно и туда загрузчик лепить и стек. Как загружали игрушки которые были запороты MAGIC, например версия RENEGADE Билла Гилберта, которая перекрывала системные переменные (они только для бэйсика нужны то по сути). Грузили с 24500, под потолок, потом кусок, который ложится на системные переменные, грузили в экран и там ldir перебрасывали на свое место (кусок загрузчика на экране и стек там же).
    ZXM-Phoenix v.03/2048/FDD/HD/YM-2149F/PS2-kbd; U8EP3C development board БК-0011М by Woland + SMK 512

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

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

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

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

Похожие темы

  1. Кадровые прерывания ( 50гц ).
    от Elvys в разделе Для начинающих
    Ответов: 37
    Последнее: 15.03.2017, 22:47
  2. какой тайминг прерывания Z80?
    от Руслан в разделе Несортированное железо
    Ответов: 3
    Последнее: 20.03.2013, 14:41
  3. Использование стека и прерывания
    от drbars в разделе Программирование
    Ответов: 21
    Последнее: 16.12.2012, 12:47
  4. Прерывания IM 2
    от GM BIT в разделе Программирование
    Ответов: 12
    Последнее: 21.01.2011, 23:52
  5. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

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