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.

Leave a Reply