IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Управление монитором и мышью
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Nick

Репутация: -  0  +


По нажатию на левую кнопку мыши все символы переворачиваются вверх ногами. по наведению мыши на символ "Ф", он меняется на "Р".

Буду очень признателен, если хотя бы намекнете, как делать. Устал висеть в гугле уже третие сутки
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Nick

Репутация: -  0  +


Вот нашел что-то. Только я в ассемблере ноль. Как это в программу на паскале влепить?

Код
.286
  CODE          SEGMENT
                ASSUME     CS:CODE,ES:CODE

prmaus proc far; процедура обработки событий - при нажатии правой кнопки в нужной области символ изменяется на пробел
   ;cx - координата по горизонтали
   ;dx - координата по вертикали    
cli;запрещаем обработку прерываний
push ds; сохраняем регистры
push es
pusha

MOV  AX,0B000H  ;указываем на ячейку, где начинается видеопамять
MOV  ES,AX      ;
mov  di,0       ; es:di - начало видеостраницы
shr  cx,3       ; делим на 8, поскольку координаты в пикселях
shr  dx,3       ; делим на 8
mov ax,dx; заносим в di 80*2*dx+2*cx
mov ah,0
imul    ax,(80*2)
add ax,cx
add ax,cx
mov di,ax
MOV  AL,32      ;символ пробела
MOV  AH,7       ;нормальные атрибуты
movsw   ; в месте es:di ставим пробел
sti;разрешаем обработку прерываний

prmaus endp


xor ax,ax  ;инициализируем текстовый режим отображения
mov     ax, 3
int         10h

xor     ax, ax ; инициализация мышки
int     33h

mov ax,1   ; отображение курсора
int 33h


mov ax,0ch  ;обработка события - нажатие правой кнопки мышки
mov cx, 1000b  
push es
push cs
pop es
lea dx,prmaus;при нажатии - идём в процедуру
int 33h
pop es

@10:
mov         ah, 01h; вводим символы с клавиатуры с эхом в видеопамять
int     21h    ;
cmp al,' '         ; до появления символа пробела
jne     @10

xor         cx,cx      ;cx=0
mov     ax,0ch  
int     33h    ;"останавливаем" мышку
                

mov ax,4c00h;завершаем работу
int 21h
CODE ends
end
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.06.2024 0:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name