Upload
muhammad-rana-farhan
View
219
Download
0
Embed Size (px)
Citation preview
8/14/2019 TSR Program Example 2
1/6
TSR Program Example 2============================================.model tiny
code_seg segment 'code'assume cs:code_seg
main proc far.startup
jmp codepart
oldint8 dd (?)oldint15 dd (?)nvalue dw 0741htik db 0h
dhr db 0hdmin db 0h
dsec db 0h
s1 db ?s2 db ?m1 db ?
m2 db ?h1 db ?
h2 db ?hid db 07h
pos dw 0010d
codepart:
xor bx,bx
xor ax,axmov ah,2chint 21h
mov dsec,dhmov dmin,cl
mov dhr,ch;for clrscr
mov ax,0B800hmov es,ax
mov di,0
mov cx,2000dstart: mov word ptr es:[di],0720h
add di,2loop start
xor ax,ax;for int15a
8/14/2019 TSR Program Example 2
2/6
mov ax,0
mov es,axmov ax,word ptr es:[15h*4]
mov word ptr cs:oldint15,axmov ax,word ptr es:[15h*4+2]
mov word ptr cs:oldint15[2],ax
mov word ptr es:[15h*4],offset newint2mov word ptr es:[15h*4+2],cs
;for int 8mov ax,0
mov es,axmov ax,word ptr es:[8*4]
mov word ptr cs:oldint8,axmov ax,word ptr es:[8*4+2]
mov word ptr cs:oldint8[2],ax
mov word ptr es:[8*4],offset newint
mov word ptr es:[8*4+2],cs
mov ax,3100hmov dx,1000int 21h
main endp
newint2 proc
cmp ah,4Fh
jne skipall
;chk right arowcmp al,4DH
je body1;chk down arow s
cmp al,50h
je body2;chk up arow wcmp al,48h
je body3;chk left arow a
cmp al,4Bhje body4
;chk hide key h
8/14/2019 TSR Program Example 2
3/6
cmp al,23h
je body5;chk unhide key s
cmp al,1Fhje body6
jmp skipall
body1:add pos,2d
jmp skipallbody2:
add pos,160djmp skipall
body3:
sub pos,160djmp skipall
body4:sub pos,2d
jmp skipallbody5:
mov hid,00hjmp skipall
body6:mov hid,07h
skipall:
;for clrscr
mov ax,0B800hmov es,ax
mov di,0mov cx,2000d
start1:
mov word ptr es:[di],0720hadd di,2loop start1
jmp dword ptr cs:oldint15newint2 endp
8/14/2019 TSR Program Example 2
4/6
newint proc
push espush ax
xor bx,bx
xor ax,ax
cmp tik,12hjne isec
mov tik,0hadd dsec,01h
cmp dsec,3Ch
jne isecmov dsec,00h
add dmin,01h
cmp dmin,3Ch
jne isecmov dmin,00h
add dhr,01h
cmp dhr,18hjne isecmov dhr,00h
isec:add tik,01h
;secmov al,dsec
mov bl,10d
div bladd ax,3030h
mov s1,almov s2,ah
;minute
xor bx,bxxor ax,axmov al,dmin
mov bl,10ddiv bladd ax,3030hmov m1,al
mov m2,ah
8/14/2019 TSR Program Example 2
5/6
;Hourxor bx,bx
xor ax,axmov al,dhr
mov bl,10ddiv bladd ax,3030hmov h1,al
mov h2,ah
mov di,posmov ax,0B800h
mov es,axXOR BX,BX
mov bx,0741h
mov bh,hid;dis hr
mov bl,h1mov word ptr es:[di],bx
mov bl,h2mov word ptr es:[di+2],bx
;dis spacemov word ptr es:[di+4],0720h
;dis minutemov bl,m1
mov word ptr es:[di+6],bxmov bl,m2
mov word ptr es:[di+8],bx;dis space
mov word ptr es:[di+10],0720h
;dis secmov bl,s1
mov word ptr es:[di+12],bxmov bl,s2
mov word ptr es:[di+14],bx
pop axpop es
jmp dword ptr cs:oldint8newint endpcode_seg endsend
8/14/2019 TSR Program Example 2
6/6
http://www.ravianeducation.blogspot.comFARHAN: 03008855006