User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 13 из 13

Тема: Прерывания IM 2

  1. #11

    Регистрация
    22.08.2010
    Адрес
    г. Антрацит, Украина
    Сообщений
    1,685
    Спасибо Благодарностей отдано 
    295
    Спасибо Благодарностей получено 
    329
    Поблагодарили
    168 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если такой вот вопрос поднялся-
    Как корректно кинуть какой-нибудь процесс в IM2,например воспроизведение музыки+опрос клавы?
    Я раньше делал это в gens (лет 10 назад) -получалось,а счас чет не получается...
    Помню процедуру обработки брал из книги Как написать игру на ассемблере..
    Моё железо

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


    ZX_Evolution rev.b + NEO_GS + TSFM
    Ленинград-128/256kb + AY + TR_Dos
    Delta_micro /repair status/
    Москва_48кb /repair status/
    [свернуть]

  2. #12

    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,198
    Спасибо Благодарностей отдано 
    40
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    103 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как корректно кинуть какой-нибудь процесс в IM2,например воспроизведение музыки+опрос клавы?
    Я делал так:

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

    Блок на который указывает вектор прерываний.

    Код:
    push ix ;cохраняются на стеке значения всех регистры процессора
    push iy ;либо тех, которые изменются при выполнении ПП по адресу nn
    push bc 
    push de
    push hl
    push af
    exx
    push bc
    push de
    push hl
    ex af,af'
    push af
    call nn ;адрес вызываемый каждое прерывание (собственно, переход на ПП "повешаную" на прерывания)
    pop af ;восстанавливаются значения регистров процессора
    pop hl ;до момента прихода прерывания
    pop de
    pop bc
    ex af,af'
    pop af
    exx
    pop hl
    pop de
    pop bc
    pop iy
    pop ix
    jp 38 ;переход по стандартному адресу обработки прерывания im1 (команда rst 56)
    Для "запуска" и "остановки" писал нечто подобное:

    Код:
    di ; запретить прерывания
    call nn ;адрес "инициализации" мелодии
    ld a,m ;число m, вектор прерываний
    ld i,a
    im 2 ;включение режима
    ei ;разрешить прерывания
    ret
    ----
    Код:
    di
    call nn ; адрес "заглушающий" каналы ПГЗ
    ld a,3F ;установка "стандартного" вектора прерываний для нормальной работы в tr-dos
    ld i,a
    im 1 ;выключение режима im2
    ei
    ret
    [свернуть]
    Последний раз редактировалось null_device; 21.01.2011 в 13:42.
    Когда есть, но не знаешь где - это все равно, что нету.

  3. #13

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот все разъяснения
    http://zx.pk.ru/showpost.php?p=212708&postcount=87

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Ответов: 1
    Последнее: 03.05.2009, 23:06
  2. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

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

Ваши права

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