[ KeyDelay tenths key done ix; glk($00D2, gg_mainwin); ! request_char_event glk($00D6, tenths*100); ! request_timer_events while (~~done) { glk($00C0, gg_event); ! select ix = HandleGlkEvent(gg_event, 1, gg_arguments); if (ix == 2) { key = gg_arguments-->0; done = true; } else if (ix >= 0 && gg_event-->0 == 1 or 2) { key = gg_event-->2; done = true; } } glk($00D3, gg_mainwin); ! cancel_char_event glk($00D6, 0); ! request_timer_events return key; ];