title: convert 16-bit c++ inline __asm to 32-bit and remove far pointer
body: <p>here is the code in 16-bit c++ compiler. </p>
  
  <pre><code>//restore interrupt
  void CAzimuth::restoreISR()
  {
      __asm{
          cli
          mov ax,205h
          mov bl,0fh
          mov cx,seg OldInt
          mov dx,offset OldInt
          int 31h
          sti
     }
  }
  
  //install interrupt
  void CAzimuth::installISR()
  {
      unsigned int u1,u2;
      __asm{
          //access the original vector
          cli
          mov ax,204h
          mov bl,0fh
          int 31h
          mov u1,cx
          mov u2,dx
          sti
      }
  
      OldInt=(INTPTR)(_MK_FP(u1,u2));
  
      __asm{
          //fill in new interrupt vector
          cli
          mov ax,205h
          mov bl,0fh
          mov cx,seg NewInt
          mov dx,offset NewInt
          int 31h
          sti
      }
  }
  </code></pre>