;Read Only Protect
;PC KURIER 1.02.96
;
;Komplilacja:
;TASM PROTECT.ASM
;TLINK /T PROTECT.OBJ
;
kod segment
assume cs: kod, ds: kod
org 100h
Start:
JMP Short Instaluj
nazwa DB 'PROTECT' ; na koncu powinna byc spacja
oldvec DD ?
Obsluga_21h Proc Far
assume ds: nothing
CMP AX, 4301haaaaaaaaaaaaaaaaa; zmiana atrybutu?
JE zapis
JMP oldvec
zapis:
MOV aaaAL, 0aaaaaaaaaaaaaaaaaaaaaaaa; odczytaj atrybut
PUSH aaCX
PUSHaaaDS
PUSHaaaDX
PUSHF
CALLaaaoldvec
POPaaaaDX
POPaaaaDS
JCaaaaaaablad
ANDaaaCX, 1aaaaaaaaaaaaaaaa; czy atrybut Read Only?
CMPaaaCX, 1
JEaaaaaaaablad2
POPaaaaCX
MOVaaaAX, 4301h aaaaaaaaaa; ustawienie atrybutu
ANDaaaCX, 0FEh aaaaaaaaaaaa; nie mozna ustawic Read Only !!!
JMPaaaaoldvec
blad2:
LAHFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ustawienie fCarry
ORaaaaaaaAH, 1
SAHF
MOVaaaAX, 5aaaaaaaaaaaaaaaaaa; dostep niedozwolony
blad:
POPaaaaaCX
IRET
Obsluga_21h endp
InstallData:
titlaaaaDB 'Read Only protection enabled$'
assume ds: kod
Instaluj:
MOVaaaaaAX, 3521haaaaaaaaaaaaaaaaaa; odczyt wektora 21h
INTaaaaaaaa21h
MOVaaaaaWORD PTR oldvec, BX
MOVaaaaaWORD PTR oldvec+2, ES
MOVaaaaaAX, 2521haaaaaaaaaaaaaaaaa; zapis wektora 21h
MOVaaaaaDX, OFFSET Obsluga_21h
INT aaaaaa21h
MOVaaaaaAH, 09haaaaaaaaaaaaaaaaaaaa; wypisanie ciagu znakow
MOV aaaaDX, OFFSET titl
INT aaaaaaa21h
MOVaaaaaDX, OFFSET InstallDataaa; zakonczenie jako TSR
INTaaaaaaaa27H
Kod aends
endaaStart