Головна Головна -> Курсові роботи українською -> Інформатика, комп'ютери, програмування -> Розробити резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. в процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпак

Розробити резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. в процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпак

Назва:
Розробити резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. в процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпак
Тип:
Курсова робота
Мова:
Українська
Розмiр:
3,37 KB
Завантажень:
165
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2 
 
КУРСОВИЙ ПРОЕКТ
з дисципліни СИСТЕМНЕ ПРОГРАМУВАННЯ
Тема: Розробити резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. в процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпаки. аналогічно при переміщенні по вертикалі.


Анотація
В курсовому проекті проаналізований алгоритм роботи резидентної програми. На основі даного алгоритму написано резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. В процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпаки. Аналогічно при переміщенні по вертикалі.


Summary
In a course project there is the analysed algorithm of work of resident software. On the basis of the given algorithm resident software which will realize the effect of wrapping at moving to the cursor of manipulator “mouse” is written. In the process of moving on a horizontal line, at an attempt to pass for extreme right position, a cursor is automatically carried on home position on the left and vice versa. Like at moving on a vertical line.


Зміст
1 опис основних функцій, що використані в програмі, блок-схема програми 7
2 код резидентної програми з поясненнями (ремарками) 9
3 опис роботи 13
Висновки 15
Перелік використаних літературних джерел 16


1 опис основних функцій, що використані в програмі, блок-схема програми
Резидентна програма складається з наступних частин:
- загрузчика, який встановлює вектор переривання на нову процедуру обробки і передає управління операційній системі, залишивши резидентну частину програми в пам`яті;
- підпрограми обробки переривання.
При виконані поставленого завдання використано функції GETINTVECT (#oldvect,0x1c ) – дозволяє отримати адресу вказаного вектора підпрограми обробки переривання; SETINTVECT (,0x1c, CS, #newprochandl) – дозволяє встановити нову адресу підпрограми обробки заданого переривання для отримання адреси попередньої процедури обробки переривань від таймера та встановлення нової процедури. Функція @KEEP (,,, #main+1) – дозволяє вийти з програми, залишивши задану частину резидентною в пам’яті.
Взаємодія з драйвером маніпулятора “миша” реалізовано за допомогою функції 03h переривання int 33h, яка дозволяє отримати поточні координати курсору “миші” та стан кнопок.
Для встановлення курсора в потрібне положення використовується функції 04h переривання int 33h
 
2 код програми-калькулятор з поясненнями (ремарками)
 
?include "tsr.h--"
?include "write.h--" //підключення бібліотек
?include <dos.h-->
?include <mouse.h-->
int hear,min,sek; //оголошення змінних
word cx,dx,ccx,cdx,maxx,minx,maxy,miny;
dword oldvect; //адреса старого вектора переривання
interrupt newprochandl() // функція обробки переривання
{
$ pushf //збереження регістрів оперативного призначення
$ CS:
$ call far oldvect; //імітація виклику на стару адресу перериваня
//збереження регістрів
$ push AX
$ push BX
$ push CX
$ push DX
{
minx=0x0001; //змінна в якій зберігається ліва межа руху курсору
maxx=0x0268; //змінна в якій зберігається права межа руху курсору
miny=0x0001; //змінна в якій зберігається верхня межа руху курсору
maxy=0x0180; //змінна в якій зберігається нижня межа руху курсору
// показати курсор миші
AX=0x0001;
$ INT 0x33;
//______________________________________
AX=0x0003; //зчитати координати положення курсору
$ INT 0x33;
cx=CX; //зберігаємо координату //положення курсору по горизонталі
ccx=CX;
dx=DX; //зберігаємо координату //положення курсору по вертикалі
cdx=DX;
if ( cx < minx) //якщо горизонтальна //координата менша за ліву межу:
{
AX=0x0004; //функція встановлення курсору за вказаними //координатами
CX=0x0268; //встановлюємо курсор в біля правої межі екрану
DX=cdx; //координати курсору по вертикалі залишамо попередні
$ INT 0x33;
}
if ( cx > maxx) //якщо горизонтальна //координата більша за праву межу:
{
AX=0x0004; //функція встановлення курсору за вказаними //координатами
CX=0x0001; //встановлюємо курсор в біля лівої межі екрану
DX=cdx; //координати курсору по вертикалі залишамо попередні
$ INT 0x33;
}
if ( dx < miny) //якщо горизонтальна //координата менша за верхню межу:
{
AX=0x0004; //функція встановлення курсору за вказаними //координатами
CX=ccx; //координати курсору по горизонталі залишамо //попередні
DX=0x0180; //встановлюємо курсор в біля нижньої межі екрану
$ INT 0x33;
}
if ( dx > maxy) //якщо горизонтальна //координата більша за нижню межу:
{
AX=0x0004; //функція встановлення курсору за вказаними //координатами
CX=ccx; //координати курсору по горизонталі залишамо //попередні
DX=0x0001; //встановлюємо курсор біля верхньої межі екрану
$ INT 0x33;
}
}
//відновлюємо регістри зі стеку
$ pop DX
$ pop CX
$ pop BX
$ pop AX
}
main ()
{
GETINTVECT (#oldvect,0x1c ); //зберегти переривання від //обновлення
//системного часу
SETINTVECT (,0x1c, CS, #newprochandl);
@KEEP (,,, #main+1); //залишити програму резидентною
}
 


3 опис роботи
Програма складається з резидентної частини (що залишається в оперативній пам’яті після завершення програми) та загрузчика.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2 



Курсова робота на тему: Розробити резидентну програму, яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. в процесі переміщення по горизонталі, при спробі перейти за крайню праву позицію, курсор автоматично переноситься на початкову позицію зліва і навпак

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок