Показать сообщение отдельно
Старый 23.06.2006, 13:52   #2
Malenya
Новичок
 
Аватар для Malenya
 
Регистрация: 26.04.2006
Сообщений: 10
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

3.
;
; Proc.asm
; Author: Barnaeva Natasha
;

code segment public
assume cs:code

; обьявление процедур
public key, set_init, set_simbol, set_msg, set_cursor, set_wait

;================================================= =============================
; Инициализация клавиатуры
;================================================= =============================
key proc near

jmp kstart

exit_pressed db 0
cps_pressed db 0

old9 dd 0

buf_s dw 0
buf db 50 dup (?)
end_buf db 24h

att dw 0

TABm db ' 1234567890-= qwertyuiop[] asdfghjkl;''\ zxcvbnm,./ '
TABb db ' !@#$%^&*()_+ QWERTYUIOP{} ASDFGHJKL:" ZXCVBNM<>? '

klava db ' '
db ' г===============================================¬ '
db ' ¦ --¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬ ¦ '
db ' ¦ ¦e¦¦1¦¦2¦¦3¦¦4¦¦5¦¦6¦¦7¦¦8¦¦9¦¦0¦¦-¦¦=¦¦\¦¦-¦ ¦ '
db ' ¦ L--L--L--L--L--L--L--L--L--L--L--L--L--L--L-- ¦ '
db ' ¦ ----¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬---¬ ¦ '
db ' ¦ ¦ # ¦¦q¦¦w¦¦e¦¦r¦¦t¦¦y¦¦u¦¦i¦¦o¦¦p¦¦[¦¦]¦¦ ¦ ¦ '
db ' ¦ L----L--L--L--L--L--L--L--L--L--L--L--L--¦ ¦ ¦ '
db ' ¦ -----¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--- ¦ ¦ '
db ' ¦ ¦ # ¦¦a¦¦s¦¦d¦¦f¦¦g¦¦h¦¦j¦¦k¦¦l¦¦;¦¦"¦¦ < ¦ ¦ '
db ' ¦ L-----L--L--L--L--L--L--L--L--L--L--L--L----- ¦ '
db ' ¦ ------¬--¬--¬--¬--¬--¬--¬--¬--¬--¬--¬-------¬ ¦ '
db ' ¦ ¦ # ¦¦z¦¦x¦¦c¦¦v¦¦b¦¦n¦¦m¦¦,¦¦.¦¦/¦¦ # ¦ ¦ '
db ' ¦ L------L--L--L--L--L--L--L--L--L--L--L------- ¦ '
db ' ¦ ---¬---¬----------------------------¬---¬---¬ ¦ '
db ' ¦ ¦ #¦¦ #¦¦ # ¦¦# ¦¦# ¦ ¦ '
db ' ¦ L---L---L----------------------------L---L--- ¦ '
db ' L===============================================- '
db ' ',24h

exits db 'Выход по нажатию 24h, т.е. при включеном caps lock нажав 4', 0dh, 0ah, 24h

kstart:

; инициируем или закрываем?
cmp bp,1
jne uninstall

; установка своего int9
call Install_Int

; покажем ascii рисунок
mov csosition,0
lea bx,klava
call set_msg

mov csosition,3054
lea bx,exits
call set_msg

mov csosition,3360

; цикл ввода - пока не будет нажат caps locc а после 4
vvod: cmp exit_pressed,0
jne done
jmp vvod

; покажем программе где буфер символов и возвратимся
done: lea bx,buf
ret

uninstall:
; восстановление вектора
call uninstall_int
jmp done

key endp
Malenya вне форума