home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / sampler1 / inthand.asm < prev   
Assembly Source File  |  1985-05-22  |  936b  |  45 lines

  1. ;
  2. progseg segment para public 'CODE'
  3.     public    setcom
  4.     assume    cs:progseg, ds:progseg, es:progseg
  5.     org    100h
  6. doscall equ    21h
  7. oldint    equ    16h
  8. ;
  9. startup proc    far
  10.     jmp    setup
  11. ;
  12. setcom    proc    far
  13. ;    jmp    cs:[interupt]
  14.     pushf
  15.     call    cs:[interupt]
  16.     RET 2
  17. setcom    endp
  18. ;
  19. save    db    0
  20. interupt label dword
  21. vector    db    8 dup(0)    ;only 4 needed 4 more for safety
  22. ;
  23. setup:
  24.     mov    ah,35h        ;get interupt vector address function
  25.     mov    al,oldint    ;keyboard interupt vector
  26.     int    doscall     ;go get it
  27. ;
  28.     mov    word ptr vector,bx     ;save offset
  29.     mov    bx,es        ;get segment address
  30.     mov    word ptr vector+2,bx     ;save segment
  31. ;
  32.     mov    dx,offset setcom ;get new vector address
  33.     mov    ax,cs
  34.     mov    ds,ax        ;set segment
  35.     mov    ah,25h        ;set interupt vector address function
  36.     mov    al,oldint    ;set to our new interupt vector
  37.     int    doscall     ;set the interupt
  38. ;
  39.     mov    dx,offset setup ;terminate and stay resident
  40.     int    27h
  41. startup endp
  42. progseg ends
  43. ;
  44.     end    startup
  45.