mouseid取得可能
@@ -2,7 +2,7 @@ | ||
2 | 2 | |
3 | 3 | void CHNMain(void) |
4 | 4 | { |
5 | - unsigned char s[24] , mdatabuf[3], m_phase = 0; | |
5 | + unsigned char s[24] , mdatabuf[3], m_phase = 0,m_init = 0, m_id = 0; | |
6 | 6 | struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; |
7 | 7 | struct VESAINFO *vinfo = (struct VESAINFO *) ADR_VESAINFO; |
8 | 8 | struct FIFO32 sysfifo; |
@@ -39,7 +39,71 @@ | ||
39 | 39 | io_sti(); |
40 | 40 | switch (m_phase) { |
41 | 41 | case 0: |
42 | - if(i == 0xfa) { m_phase = 1; } | |
42 | + if(i == 0xfa) { | |
43 | + switch (m_init) { | |
44 | + case 0: | |
45 | + wait_KBC_sendready(); | |
46 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
47 | + wait_KBC_sendready(); | |
48 | + io_out8(KEYB_DATA, 0xf3); | |
49 | + m_init = 1; | |
50 | + break; | |
51 | + case 1: | |
52 | + wait_KBC_sendready(); | |
53 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
54 | + wait_KBC_sendready(); | |
55 | + io_out8(KEYB_DATA, 200); | |
56 | + m_init = 2; | |
57 | + break; | |
58 | + case 2: | |
59 | + wait_KBC_sendready(); | |
60 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
61 | + wait_KBC_sendready(); | |
62 | + io_out8(KEYB_DATA, 0xf3); | |
63 | + m_init = 3; | |
64 | + break; | |
65 | + case 3: | |
66 | + wait_KBC_sendready(); | |
67 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
68 | + wait_KBC_sendready(); | |
69 | + io_out8(KEYB_DATA, 100); | |
70 | + m_init = 4; | |
71 | + break; | |
72 | + case 4: | |
73 | + wait_KBC_sendready(); | |
74 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
75 | + wait_KBC_sendready(); | |
76 | + io_out8(KEYB_DATA, 0xf3); | |
77 | + m_init = 5; | |
78 | + break; | |
79 | + case 5: | |
80 | + wait_KBC_sendready(); | |
81 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
82 | + wait_KBC_sendready(); | |
83 | + io_out8(KEYB_DATA, 0x80); | |
84 | + m_init = 6; | |
85 | + break; | |
86 | + case 6: | |
87 | + wait_KBC_sendready(); | |
88 | + io_out8(PORT_KEYCMD, KEYCMD_SENDTO_MOUSE); | |
89 | + wait_KBC_sendready(); | |
90 | + io_out8(KEYB_DATA, 0xf2); | |
91 | + m_init = 7; | |
92 | + break; | |
93 | + case 7: | |
94 | + wait_KBC_sendready(); | |
95 | + m_init = 8; | |
96 | + break; | |
97 | + case 8: | |
98 | + wait_KBC_sendready(); | |
99 | + m_id = io_in8(KEYB_DATA); | |
100 | + m_phase = 1; | |
101 | + boxfill_i(vinfo->PhysBasePtr, binfo->scrnx, 0x000000, 0,272,300 , 288); | |
102 | + sprintf(s,"マウスID = %02X",m_id); | |
103 | + putfonts_asc_i(vinfo->PhysBasePtr, binfo->scrnx, 0,272,0xffffff,s); | |
104 | + break; | |
105 | + } | |
106 | + } | |
43 | 107 | break; |
44 | 108 | case 1: |
45 | 109 | mdatabuf[0] = i; |