Привет,
Имеется CPU-188 с матричной клавиатурой (3х4) и дисплеем (4х20). Подключён к РС (файлы грузятся через ftrans).  Чтение кнопок по опросу работает. Код нажатой кнопки выводится на LCD и в консоль.
Теперь хочу сделать чтение кнопок не по опросу, а по прерыванию. Пишу такой текст:
//--------------------------------------------------- 
volatile char kb_flag = 0;
void interrupt(*oldvector)(...);
//---------------------------------------------------
void interrupt Matrix(...)
{
  kb_flag = 0xff;
  _AX = 0x0010;
  outp(0xff22,_AL);
}
//---------------------------------------------------
void main(void)
{
  char scancode = 0;
  int i = 0;
  _disable();
  oldvector = getvect(0x10);
  setvect(0x10,Matrix);
  _AX = inpw(0xff28) & ~0x100;
  outp(0xff28,_AL);
  outp(0x82,0xc0);
  _enable();
  while(1){
    if(kb_flag){
      scancode = inportb(0x82);
      printf("\n SCAN: %02X", scancode);
      kb_flag = 0;
    }
    if(kbhit()){
      break;
    }
    i++;
    printf("%d\r",i);
  }
  _AX = inpw(0xff28) | 0x100;
  outp(0xff28,_AL);
  setvect(0x10,oldvector);
  
}
Не работает... После установки нового вектора прекращается вывод на консоль. Правда, программа не висит - после нажатия на кнопку (на писишной клаве) завершается нормально.
Подскажите что я делаю не так...