Специальные цены   новые товары
Закрытая тема
Показано с 1 по 6 из 6

Hardware прерывания в BASICе

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Уже довольно давно интересуюсь следующей проблемой -- как организовать hardware interrupt (например, IRQ5) в QBasic в DOS (без каких-либо Windows)? ...

  1. #1

    Регистрация
    20.06.2005
    Адрес
    St.Petersburg
    Возраст
    64
    Сообщений
    1,429

    Hardware прерывания в BASICе

    Уже довольно давно интересуюсь следующей проблемой -- как организовать hardware interrupt (например, IRQ5) в QBasic в DOS (без каких-либо Windows)? Скажем, есть какая-то программа на QBasic, и тут приходит IRQ5 с LPT. Нужно отработать простенькую рутинку по прерыванию, желательно в самом же BASICе, и продолжить основную программу. Ну, короче, это нужно для real time processing, хотя и примитивного.

    Можно ли это сделать, и как?

  2.  
  3. #2
    ds5
    ds5 вне форума

    Регистрация
    08.08.2005
    Адрес
    подМосква
    Возраст
    55
    Сообщений
    1,244
    Цитата Сообщение от Volante24 Посмотреть сообщение
    Уже довольно давно интересуюсь следующей проблемой -- как организовать hardware interrupt (например, IRQ5) в QBasic в DOS (без каких-либо Windows)? Скажем, есть какая-то программа на QBasic, и тут приходит IRQ5 с LPT. Нужно отработать простенькую рутинку по прерыванию, желательно в самом же BASICе, и продолжить основную программу. Ну, короче, это нужно для real time processing, хотя и примитивного.

    Можно ли это сделать, и как?
    наверное ассемблерную вставку-перехватчик прерывания писать.

  4. #3

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    qbasic - слишком экстримальный вариант. используйте лучше для этих целей турбо-паскаль.

  5. #4

    Регистрация
    20.06.2005
    Адрес
    St.Petersburg
    Возраст
    64
    Сообщений
    1,429
    Цитата Сообщение от ds5 Посмотреть сообщение
    наверное ассемблерную вставку-перехватчик прерывания писать.
    Хорошо, но как это делать? Имеется в виду, что-то вроде переопределение ISR для IRQ5, или что-нибудь другое? То есть, ассемблерная часть никак не связана с Basicом, внешняя по отношению к нему, да? Как тогда лучше осуществлять импорт данных в Basic-программу?

    Цитата Сообщение от toxa Посмотреть сообщение
    qbasic - слишком экстримальный вариант. используйте лучше для этих целей турбо-паскаль.
    Ну, просто qbasic я знаю (знал), есть уже опробованные программы... Если ж на него не полагаться, тогда зачем TP, можно сразу на C...

  6.  
  7. #5

    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    43
    Сообщений
    3,120
    Ну на си напишите... На qbasic вроде можно организовать ассемблерную вставку, но ассемблировать придется самому при помощи справочника команд. А на паскале можно написать что-нибудь типа:

    {$F+}
    procedure OnInterrupt; Interrupt; Assembler;
    asm
    mov...
    ...
    end;
    {$F-}

    потом где-нибудь

    SetIntVec($05, @OnInterrupt);

    при этом можно обойтись вообще без ассемблера, а написать обработчик непосредственно на паскале.

  8. #6
    pvo
    pvo вне форума

    Регистрация
    24.01.2008
    Адрес
    Питер
    Возраст
    62
    Сообщений
    14
    Цитата Сообщение от toxa Посмотреть сообщение
    потом где-нибудь
    SetIntVec($05, @OnInterrupt);
    1.Только перед этим GetIntVec...
    2.Сохраняем старый вектор
    3.SetIntVec устанавливаем новый
    4.Восстанавливаем старый перед выходом из проги
    5.Выходим из проги

    А если ,что-то грамотное ваять то и с контроллером прерываний надо обчацца.
    Когда то с этим много возился.

Закрытая тема

Похожие темы

  1. есть ли клуб в Красноярске?
    от nvg в разделе Встречи, даты
    Ответов: 7
    Последнее сообщение: 13.12.2004, 16:54
  2. Ace Hardware Hobbies ships all over the world
    от lvmaxx в разделе Магазины, интернет-торговля
    Ответов: 0
    Последнее сообщение: 28.02.2004, 12:14
  3. Трасса в Лужниках
    от Илья в разделе Авто On-Road
    Ответов: 4
    Последнее сообщение: 11.10.2002, 04:02
  4. Supertigre или OS вот в чём вопрос ;-)
    от aklion в разделе ДВС - калильные и компрессионные двигатели
    Ответов: 11
    Последнее сообщение: 07.10.2002, 01:21
  5. Трасса для Багги в Москве ???
    от andrey в разделе Автомодели. Встречи, адреса
    Ответов: 5
    Последнее сообщение: 25.06.2002, 23:54

Ваши права

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