Pada kesempatan kali ini saya akan memberikan tutorial mengenai program residen mengunci caps lock.
Disini kita akan mencoba Program
residen yang akan mengunci Caps Lock sehingga nyala terus
Ketikkan program dibawah ini di
menu edit command prompt:
Aksi MACRO
MOV AX,40h
MOV ES,AX ; ES=40h
MOV AX,ES:[17h] ; AX=40h:17h
OR AX,01000000b ; Jadikan bit ke
7 menjadi 1
MOV ES:[17h],AX ; Masukkan
kembali ke 40h:17h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Res_kan
NoInt EQU 1Ch
Bag_Res PROC
PUSH AX ;
PUSH BX ;
PUSH CX ;
PUSH DX ;
PUSH ES ; Simpan isi semua
register
PUSH DI ;
PUSH DS ;
PUSH SI ;
Aksi
POP SI ;
POP DS ;
POP DI ;
POP ES ;
POP DX ; Kembalikan isi semua
register
POP CX ;
POP BX ;
POP AX ;
IRET ; Akhir dari interupt
handler
Bag_Res ENDP
Res_Kan :
MOV AH,25h ;
MOV AL,NoInt ; Untuk merubah
vektor interupsi
LEA DX,Bag_Res ; 1Ch menuju
'Bag_Res'
INT 21h ;
LEA DX,Res_Kan ;
INT 27h ; Untuk meresidenkan
bagian
END TData ; 'Bag_Res'
Compile program terlebih dahulu dengan menggunakan TASM, kemudian
TLINK/t seperti biasa pada DOSBOX.
Pada program kita kali ini yang
dibelokkan adalah interupsi 1Ch. Handler Interupsi ini secara defaultnya
hanyalah berisi perintah IRET karena interupsi ini memang disediakan untuk
digunakan oleh pemakai.
Interupsi 1Ch terjadi kurang lebih 18,2 kali setiap detiknya.
Karenanya dengan menggunakan interupsi 1Ch ini penekanan tombol Caps Lock
menjadi seakan-akan tidak berarti lagi karena selalu dinyalakan oleh program
kita.