aboutsummaryrefslogtreecommitdiff
path: root/converter/ibm4704_usb/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'converter/ibm4704_usb/matrix.c')
-rw-r--r--converter/ibm4704_usb/matrix.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/converter/ibm4704_usb/matrix.c b/converter/ibm4704_usb/matrix.c
index 5f928d716..155df9c38 100644
--- a/converter/ibm4704_usb/matrix.c
+++ b/converter/ibm4704_usb/matrix.c
@@ -67,35 +67,31 @@ uint8_t matrix_cols(void)
67 67
68static void enable_break(void) 68static void enable_break(void)
69{ 69{
70 uint8_t ret;
71 print("Enable break: "); 70 print("Enable break: ");
72 // valid scancode: 00-79h 71 // valid scancode: 00-79h
73 for (uint8_t code = 0; code < 0x7A; code++) { 72 for (uint8_t code = 0; code < 0x7A; code++) {
74 while (ibm4704_send(0x80|code)) _delay_ms(1); 73 while (ibm4704_send(0x80|code)) _delay_ms(10);
75 // get none when ok, get FD when out of bound 74 _delay_ms(5); // wait for response
76 _delay_ms(5); 75 // No response(FF) when ok, FD when out of bound
77 if ((ret = ibm4704_recv()) != 0xff) { 76 xprintf("s%02X:r%02X ", code, ibm4704_recv());
78 xprintf("c%02X:r%02X ", code, ret);
79 }
80 _delay_ms(1);
81 } 77 }
82 _delay_us(1000); 78 while (ibm4704_send(0xFF)) { _delay_ms(10); } // End
83 while (ibm4704_send(0xFF)) { _delay_ms(1); } // End
84 print("End\n"); 79 print("End\n");
85} 80}
86 81
87void matrix_init(void)
88{
89 debug_enable = true;
90 82
83void matrix_setup(void)
84{
91 ibm4704_init(); 85 ibm4704_init();
92 matrix_clear(); 86}
93 87
94 _delay_ms(2000); // wait for starting up debug console 88void matrix_init(void)
89{
90 debug_enable = true;
95 91
96 print("IBM 4704 converter\n"); 92 print("IBM 4704 converter\n");
97 while (ibm4704_send(0xFE)) _delay_ms(1); // resend 93 matrix_clear();
98 _delay_ms(5); 94 _delay_ms(2000); // wait for keyboard starting up
99 xprintf("Keyboard ID: %02X\n", ibm4704_recv()); 95 xprintf("Keyboard ID: %02X\n", ibm4704_recv());
100 enable_break(); 96 enable_break();
101} 97}