www.pudn.com > czxtsycx1.zip > G_FUNC1.C


svect() 
  { 
      segs.ds = FP_SEG(&gint8); 
      tt = FP_OFF(&gint8); 
      inregs.x.dx = tt; 
      inregs.x.ax = 0x2508; 
      intdosx(&inregs,&outregs,&segs); 
  } 
void save8(int n) 
{ 
                                         /* get 8h vector */ 
        if (n==1) { inregs.x.ax = 0x3508; } 
        else { inregs.x.ax = 0x3581; } 
        intdosx(&inregs,&outregs,&segs); 
        old_segment = segs.es; 
        old_offset = outregs.x.bx; 
                                /* save old_8h --> 81h */ 
        segs.ds = old_segment; 
        inregs.x.dx = old_offset; 
        if (n==1) { inregs.x.ax = 0x2581; } 
        else { inregs.x.ax = 0x2508; } 
        intdosx(&inregs,&outregs,&segs); 
} 
void ggret() 
  { 
    save8(0); 
    setvect(INTERRUPT,oldhandler); 
    printf("\n   Exit from genix--return"); 
    exit(); 
  }