TSR Program Example 2

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