static struct segoff __text16 ( int20_vector );
#define int20_vector __use_text16 ( int20_vector )
extern void int20_wrapper ( void );
static __cdecl void int20 ( struct i386_all_regs *ix86 ) {
   // INT 20 handler goes here
}

static void hook_int20 ( void ) {
        __asm__  __volatile__ (
              TEXT16_CODE ( "\nint20_wrapper:\n\t"
                             "pushl %0\n\t"
                             "pushw %%cs\n\t"
                             "call prot_call\n\t"
                             "addw $4, %%sp\n\t"
                             "iret\n\t" )
               : : "i" ( int20 ) );

        hook_bios_interrupt ( 0x20, ( unsigned int ) int20_wrapper,
                              &int20_vector );
}