Pascal и прерывания

Тема в разделе "Delphi - FAQ", создана пользователем -, 15 июн 2007.

  1. Гость

    7. Подготовьте текстовое сообщение в двух страницах памяти. Используя прерывание 10Н, осуществите переключение между страницами.

    15. Используя прямой доступ к видеопамяти, напишите и протестируйте функции очистки экрана заданным цветом, вывода символа и атрибута в заданную позицию, вывода строки заданным цветом, начиная с заданной позиции.

    17. Последовательно переключая режимы 0х3–0х13, выведите в каждом из них строку.

    38. Используя область данных BIOS, напишите программу, определяющую:
    базовый адрес порта первого адаптера RS-232 (COM1);
    порт для COM2;
    порт для COM3;
    порт для COM4;
    базовый адрес порта для 1-го адаптера параллельн. принтера (LPT1);
    порт для LPT2;
    порт для LPT3;
    порт для LPT4;
    общую память в K-байтах;
    биты состояния клавиатуры;
    текущее (накопленное) значение ввода Alt+цифровая клавиатура;
    адрес головы буфера клавиатуры;
    адрес хвоста буфера клавиатуры;
    текущий видео режим;
    ширину экрана в текстовых колонках;
    длина (в байтах) видео области;
    смещение в видео сегменте активной страницы видео памяти;
    положение курсора;
    размер (форму) курсора;
    номер текущей активной видео страницы;
    адрес порта для чипа 6845 видеоконтроллера;
    дату издания ROM-BIOS в коде ASCII.

    39. Завершите работу программы, используя прерывание 20H.

    43. Используя прерывание 21Н, определите системное время.
    49. Используя прерывание 21Н, узнайте, используется ли проверка на CTRL-BREAK.

    51. Используя прерывание 21Н, создайте файл.

    54. Используя прерывание 21Н, отобразите строку на стандартном устройстве вывода.

    58. Используя функцию 7H прерывания 21H, составьте программу для ввода пароля.

    84. Используя расширенную память, составьте программу копирования дискет.




    Друга попросил его друг, а тот попросил меня... Есть примеры, но они на С++. Сделать тоже можно либо на Pascal, либо на С++. Можна с ассемблерными вставками:) Если можете, напишите программы - с меня, если будете в Киеве, пиво;) Если лень писать и есть какие-либо мануалы по прерываниям в Pascal, буду также рад... Всем, кто отзовется, наперед спасибо.
     
  2. Гость

    54. Используя прерывание 21Н, отобразите строку на стандартном устройстве вывода.

    Написал вот так:

    uses crt;
    var message:string;
    begin
    clrscr;
    message:='Stroka na standartnom ustroystve vivoda$';
    asm
    mov ah,9
    mov dx, offset message
    int 21h
    end;
    readln
    end.

    С остальным туго... :)

    Люди, выручайте...
     
  3. malor

    malor Active Member

    Регистрация:
    30 апр 2007
    Сообщения:
    27
    Симпатии:
    0
    В чем отличие "базового адреса порта" от просто "базового адреса"?
    Встретил в книге "Последовательные интерфейсы ПК" Агуров П.
    Еще какой-то бит DLAB упоминается, непонятно откуда возникший. Стр. 319-320.
     
  4. semenov-aks

    semenov-aks Гость

    Рекомендую поискать С.А.Немнюгин "Turbo Pascal" (учебник). Очень неплохо описана работа с прерываниями.
     
  5. malor

    malor Active Member

    Регистрация:
    30 апр 2007
    Сообщения:
    27
    Симпатии:
    0
    Э.Таненбаум “Современные операционные системы”, стр.309:
    Что за `диапазон адресов` у устройств ввода-вывода?
     
Загрузка...

Поделиться этой страницей