Резидентная программа - Turbo Pascal

  1. Здравствуйте. Мне необходимо написать на паскале резидентную программу, которая по нажатию определенной клавиши перемешивала(или что-нибудь другое) буквы, находящиеся на экране. Подскажите, пожалуйста, с чего мне следует начать?


textual

Код:

{$M $2000, 0, 0 }   { 8 кб стек, без кучи }
Uses Crt, Dos;
Var  IntSave : procedure;
     x, y, AtrSim, sAtrSim: longint;
     key: byte;
 
{$F+}
{$R-}
Procedure KeyClick; Interrupt;
begin
     If ((Port[$60] = $22) and (mem[$40:$17] and 1 = 1)) or (key=1) then
     begin             { G + Shift }
          x:=Random(80);            { столбец* }
          y:=Random(25);                                   { строка* }
          AtrSim:=MemW[$B800:(y-1)*160+(x-1)*2];
          sAtrSim:=AtrSim;
          AtrSim:=(AtrSim and $FF00) or $20;       { заменим на пробел}
          MemW[$B800:(y-1)*160+(x-1)*2]:=AtrSim;   { и сотрем }
          inc(y);   { на сроку вниз }
          MemW[$B800:(y-1)*160+(x-1)*2]:=sAtrSim;
          key:=1;
     end;
 
     If ((Port[$60] = $21) and (mem[$40:$17] and 1 = 1)) or (key=0) then
     begin          { F + Shift }        { оставляем в памяти дальше }
          key:=0;
     end;
 
     If ((Port[$60] = $10) and (mem[$40:$17] and 1 = 1)) then
     begin         { Q + Shift }
          SetIntVec($9, @IntSave);
          InLine($C9);
          IntSave;   { старый вектор }
          Halt;      { снимаем резидент }
     end;
 
     InLine($9C); { запоминаем флаги в стеке }
 
     { Вызываем старый вектор }
     IntSave;
end;
{$R+}
{$F-}
 
begin
     Randomize;
     
     { сохраняем старый вектор }
     GetIntVec($9, @IntSave);
 
     { устанавливаем новый }
     SetIntVec($9, addr(KeyClick));
 
     { оставляем программу в памяти }
     Keep(0);
end.


Похожие ответы
  1. Задание собственно такое: Составить программу формирования из вектора A={ai}, i=1/3n вектора B={bi}, i=1/n, очередная компонента которого равна среднему арифметическому очередной тройки компонент вектора. вот сама программа:

  1. Составить программу для вычисления значения функции: y=sh(x) с помощью разложения функции в степенной ряд Помогите пожалуйста решить, пожалуйста!!

  1. Помогите пожалуйста!!! Срочно, умоляю молю Составить программу для вычисления значения функции :y=sin(x) с помощью разложения функции в степенной ряд

  1. дана функция, которая находит максимальный элемент матрицы, в основном теле ползователь рандомом задает 2 матрицы, как сделать так, чтобы программа находила разность между максимальными этих 2 матриц и выводила на экран

  1. Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 const n=20;  var V: array[1..n] of real;  begin  for i:= 1 to n do    begin     write('dati x[',x,']=');      readln(x[i]);      end;       for i:=1 to n do   writeln(x[i]);    for i:=1 to n do div 2 do        begin          aux:=x[i];           x[i]:=x [n+1-i];            x[n+1-i]:=aux;         end;             readln;       end.Пишет Встречно 'div', а ожидался оператор (11 строка) Кто может помочь буду благодарен. P.S Что я должен был сделать линейный массив V[1..], n<=20 нужно создать рекурсивную процедуру которая будет инвертирвать компоненты вектора.

  1. Есть программа с использованием множеств. Задание: напечатайте все целые числа, лежащие в диапазоне от 5 до 100, которые представимы в виде 5n+7m, где n и m – целые числа (m, n >=0). Код есть, программа работает, но выводит дублированные значения. Такого быть не должно. Как можно исхитриться со множеством ещё, чтобы программа выполняла свою работу как надо?

  1. Помогите пожалуйста , есть прога для проверки слов перевертышей. Когда вводишь все маленькие либо большие буквы, то все нормально. А когда первая заглавная, а последняя маленькая, то пишет что слово не перевертыш. Как исправить? Код программы:

  1. Прошу помощи или подсказки в написании программы, которая бы из 2000 (фиксированно) чисел от 1 до 20 (возможен и другой близкий диапазон значений) составляла бы вектор, сумма всех элементов которого равнялась бы 40000 (fixed). Пишу программу на матлабе, но задача больше для программистов, поэтому и обращаюсь сюда. В идеале числа должны выбираться случайно из набора 1-20 или любого другого, как я описал выше. Но я могу их потом случайным образом и перемешать. Главное алгоритм. У меня никак не сходится по параметрам: кол-во чисел в векторе (2000) и сумма всех элементов (40000), которые жестко зафиксированы.

  1. Здравствуйте! У меня имеется вот такое задание: Написать программу для выполнения простейших арифметических расчетов( калькулятор) Технические требования: Размер калькулятора. Его расположение относительно начала координат, размер кнопок цветовая гамма определяется в файле Input.txt. Управление калькулятором осуществляется с помощью клавиатуры. Предусмотреть запись рассчитанного значения в файл Output.txt. У меня есть текст программы где создан простейший калькулятор с текстовым меню. Друзья, прошу у Вас помощи как у более опытных. Буду очень благодарен за помощь.

  1. Напишите процедуру для вычисления значения y. у = 2x^2, если x ≤ 1, y = x+1/3, если 1 ≤ x≤8, y = √sin^2 x, если x ≥ 8.