home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
C!T
/
C!T01_94
/
CAPSLOCK
/
CAPSLOCK.ASM
next >
Wrap
Assembly Source File
|
1993-12-27
|
2KB
|
100 lines
;----------------------------------------------------
; CapsLock.asm : controleert of de Caps Lock + toets
; i.p.v. de linker-Shift + toets is ingedrukt.
;
; assembler:
; TASM : tasm capslock tot capslock.obj
; tlink /t capslock tot capslock.com
; A86 : a86 capslock.asm tot capslock.com
; MASM : masm capslock tot capslock.obj
; link capslock tot capslock.exe
; exe2bin capslock tot capslock.com
;----------------------------------------------------
; constanten
false equ 0
true equ 1
capslock equ 58
;----------------------------------------------------
; programma
;----------------------------------------------------
CODE SEGMENT
ASSUME cs:CODE, ds:CODE, es:CODE
ORG 100h
main:
jmp begin
;----------------------------------------------------
; variabelen
;----------------------------------------------------
Nolock db 0
OldInt09Ofs dw ?
OldInt09Seg dw ?
;----------------------------------------------------
; interruptroutine
;----------------------------------------------------
NewInt09h PROC
pushf
push ax
push ds
xor ax,ax
mov ds,ax
cmp cs:Nolock,false
jz @@1
mov al,ds:[418h]
test al,1000000b
jnz @@1
mov al,1000000b
xor ds:[417h],al
mov cs:Nolock,false
jmp short @@2
@@1: in al,60h
cmp al,128
jae @@2
cmp al,capslock
jz @@2
mov al,ds:[418h]
test al,1000000b
jz @@2
mov cs:Nolock,true
@@2: pop ds
pop ax
popf
jmp dword ptr cs:OldInt09Ofs
NewInt09h ENDP
;----------------------------------------------------
; installatieprogramma
;----------------------------------------------------
begin:
cli
mov ax,3509h
int 21h
mov word ptr OldInt09Ofs,bx
mov word ptr OldInt09Seg,es
mov dx,offset NewInt09h
mov ax,2509h
int 21h
sti
mov dx,offset begin
int 27h
CODE ENDS
END main