{"id":482323,"date":"2026-06-04T06:56:42","date_gmt":"2026-06-04T06:56:42","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=482323"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=482323","title":{"rendered":"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 USB-\u043c\u044b\u0448\u0438 \u043a \u0440\u0435\u0442\u0440\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u0441 \u0448\u0438\u043d\u043e\u0439 ISA"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u0440\u0435\u0442\u0440\u043e\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0435 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u0415\u0441\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0442\u043e \u0432 \u0440\u0435\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0443\u0434\u0430 \u043a\u0430\u043a \u0447\u0430\u0449\u0435 \u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0435\u0435, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043a\u0430\u043a \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u0438-  \u0441\u043e\u0440\u043e\u043a\u0430\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \u0418 \u0435\u0441\u043b\u0438 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043a \u0441\u0442\u0430\u0440\u043e\u043c\u0443 \u041f\u041a \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e: \u0441\u0442\u0430\u0440\u044b\u0435 AT \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0436\u0438\u0432\u0443\u0447\u0438\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c \u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0438 \u0441\u0442\u043e\u044f\u0442 \u043e\u043d\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c PS\/2 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430. \u0422\u043e \u0441 \u043c\u044b\u0448\u044c\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435: COM \u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0435 \u043c\u044b\u0448\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0448\u0430\u0440\u0438\u043a\u043e\u0432\u044b\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0438\u0445 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0445 \u0441\u0442\u0430\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441 \u0440\u0430\u0437\u044a\u0435\u043c\u043e\u043c PS\/2. \u041a\u0430\u043a\u0430\u044f-\u0442\u043e \u0438\u0445 \u0447\u0430\u0441\u0442\u044c \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 COM \u043f\u043e\u0440\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a, \u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u043c\u044b\u0448\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e, \u0434\u0430 \u0438 \u0441\u0430\u043c\u0438 PS\/2 \u043c\u044b\u0448\u0438 \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0436\u0435 USB \u043c\u044b\u0448\u044c \u043a \u043a\u0430\u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c XT \u0438\u043b\u0438 AT \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 486, \u0434\u0430 \u0435\u0449\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0448\u0442\u0430\u0442\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0430 \u0432\u044b\u043b\u0438\u043b\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. <\/p>\n<p>\u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u0430\u043a-\u0442\u043e \u043c\u043d\u0435 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c, \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0435\u0431\u0435 486 \u00ab\u0434\u043b\u044f \u0434\u0443\u0448\u0438\u00bb. \u0427\u0430\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a \u0432\u043e\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043c\u043e\u044f \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u043d\u0430\u044f USB \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 Zalman ZM-K300M \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 USB-PS\/2-AT. COM \u043f\u043e\u0440\u0442\u043e\u0432\u0443\u044e \u043c\u044b\u0448\u044c \u0436\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438 \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043c\u0443 Vogons, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443 PS\/2 \u043c\u044b\u0448\u0438 \u0434\u043b\u044f \u0448\u0438\u043d\u044b ISA. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 8250 \u0438, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 PS\/2 \u043c\u044b\u0448\u0438, \u043f\u043e\u0447\u0442\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u043e \u0438\u0445 \u043d\u0430 ISA \u0448\u0438\u043d\u0443. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0431\u044b\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b, \u0438 \u043c\u044b\u0448\u044c \u0432\u0435\u043b\u0430 \u0441\u0435\u0431\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043a \u0436\u0435 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u043e, \u043a\u0430\u043a PS\/2, \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044f\u0441\u044c \u0432 \u043b\u0443\u0447\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0448\u0430\u0440\u0438\u043a\u043e\u0432\u044b\u0445 COM-\u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0445 \u043c\u044b\u0448\u0435\u0439.<\/p>\n<p>\u0410\u0434\u0430\u043f\u0442\u0435\u0440 \u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u043d\u0430 \u0434\u0432\u0443\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 Altera EPM3064, \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0435\u0439 UART 8250 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0448\u0438\u043d\u043e\u0439 ISA.  \u0418 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Atmega8 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0432\u0448\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u044b PS\/2. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0434\u0432\u0443\u0445- \u0438 \u0442\u0440\u0451\u0445\u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0445 \u043c\u044b\u0448\u0435\u0439 Logitech \u0438 Microsoft \u0441 \u043a\u043e\u043b\u0435\u0441\u043e\u043c \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 XT \u0438 AT \u0441 \u0440\u0430\u043d\u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 8086 \u0438 286, \u0447\u0442\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e 486, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p>\u0417\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u0435\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043b\u0438\u0448\u044c \u043f\u0435\u0447\u0430\u0442\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438. \u041a \u043d\u0435\u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043e\u0431 \u044d\u0442\u043e\u043c \u044f \u0443\u0437\u043d\u0430\u043b \u043b\u0438\u0448\u044c \u0437\u0430\u043a\u0430\u0437\u0430\u0432 \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b. \u0420\u0435\u0448\u0438\u0432, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u043a \u0441\u0432\u044b\u0448\u0435 \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 CPLD, \u044f \u043f\u0440\u0438\u043d\u044f\u043b\u0441\u044f \u0437\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u0430. Atmega \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0442 PS\/2 \u043c\u044b\u0448\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u043e \u043e\u0441\u044f\u043c X \u0438 Y, \u043d\u0430\u0436\u0430\u0442\u044b\u0445 \u043a\u043d\u043e\u043f\u043a\u0430\u0445 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0435\u0441\u0430 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438. \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442, \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u044b\u0448\u0438, \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e SPI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0432 CPLD \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0448\u0438\u043d\u0435 ISA \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0434\u0440\u0430\u0439\u0432\u0435\u0440. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u044b\u043b \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 github \u043f\u0440\u043e\u0435\u043a\u0442\u0430 avr-mouse-ps2-to-serial, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0430 \u0447\u0430\u0441\u0442\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 UART \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0443\u044e \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e soft SPI, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b UART \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u041a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u044d\u0442\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f), CPLD \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b, CPLD \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0438\u0434, \u0447\u0442\u043e \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u2014 \u0445\u043e\u0442\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 UART \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0434\u0435\u0441\u044c: \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u043c\u044b\u0448\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 CPLD \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u044d\u0442\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 UART \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0443 \u043c\u044b\u0448\u0438. \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 SPI \u0441 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043c\u044b\u0448\u0438\u043d\u044b\u0445 1200 \u0431\u043e\u0434.<\/p>\n<pre><code class=\"cpp\">#define SPI_SEND_BIT(bit_mask, tx_data) do {  spi_sck_low();  asm volatile(\u201cnop\\n\\t\u201d);  if ((tx_data) &amp; (bit_mask)) spi_mosi_high(); else spi_mosi_low();  asm volatile(\u201cnop\\n\\t\u201d);  spi_sck_high();  asm volatile(\u201cnop\\n\\t\u201d);  } while (0)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"cpp\">#define SPI_SEND_PACKET(tx_data) do { SPI_SEND_BIT(0x40, (tx_data)); SPI_SEND_BIT(0x20, (tx_data)); SPI_SEND_BIT(0x10, (tx_data)); SPI_SEND_BIT(0x08, (tx_data)); SPI_SEND_BIT(0x04, (tx_data)); SPI_SEND_BIT(0x02, (tx_data)); SPI_SEND_BIT(0x01, (tx_data)); \/\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438\/ spi_sck_low(); spi_mosi_low(); }while (0);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f 8250 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043d\u0443\u044e CPLD EPM3064. \u0412\u0441\u043f\u043b\u044b\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0441\u0445\u0435\u043c\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e atmega \u0432\u0438\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e IRQ \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 CPLD, \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u043b\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u043b\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 \u043b\u0438\u0441\u0442\u043e\u0447\u043a\u0435 \u0432 \u043a\u043b\u0435\u0442\u043e\u0447\u043a\u0443 \u0431\u044b\u043b\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0438 \u043d\u0430\u0431\u0440\u043e\u0441\u0430\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/Yftul\/ps-2-mouse-to-isa-replica\" rel=\"noopener noreferrer nofollow\">ps-2-mouse-to-isa-replica<\/a>, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438 \u0438 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c \u0431\u044b\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 CPLD. \u0420\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 8250, \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b BIOS \u043c\u043e\u0433 \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043b\u0430\u0442\u0443 \u043a\u0430\u043a COM \u043f\u043e\u0440\u0442, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c BIOS 486 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0443 AWARD \u0438 AMI BIOS. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 UART \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u0441\u0435\u043c\u044c \u0431\u0438\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u044b\u0448\u044c\u044e, \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u044c\u044e \u043b\u0438\u043d\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0412\u0441\u0451, \u0447\u0442\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u044b\u0448\u0435\u0439 \u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043c\u0438 BIOS \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044f COM \u043f\u043e\u0440\u0442\u0430, \u0431\u044b\u043b\u043e \u043e\u0442\u0431\u0440\u043e\u0448\u0435\u043d\u043e, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0435\u0436\u0438\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e loopback. \u0425\u043e\u0442\u044f \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c CPLD, \u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438 \u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0438\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438. \u0418 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0431\u0438\u043e\u0441 COM \u043f\u043e\u0440\u0442 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043b\u0430\u0442\u044b \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u043a\u043e\u0434 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 UART \u0441\u0442\u0430\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>\u0427\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 8250:<\/p>\n<pre><code class=\"vhdl\">if (device_select = '1') thendata_out &lt;= (others =&gt; '0');case isa_addr(2 downto 0) iswhen \"000\" =&gt; -- \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u0430\u043d\u043d\u044b\u0445if sig_DLAB = '0' then -- !DLAB checkdata_out &lt;= \"0\" &amp; rx_data_reg;  -- \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 UARTelsedata_out &lt;= gen_reg;end if;when \"001\" =&gt; -- \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044fif sig_DLAB = '0' then -- !DLAB checkdata_out &lt;= \"0000\" &amp; int_ena_reg;elsedata_out &lt;= gen_reg;end if;when \"010\" =&gt; -- \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f: xxxxx10x = \u043f\u0440\u0438\u043d\u044f\u0442 \u0441\u0438\u043c\u0432\u043e\u043b; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430if RxD_IRQ = '1' then             -- \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430data_out &lt;= \"00000100\";       -- \u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430elseif int_ena_reg(1) = '1' then -- \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430data_out &lt;= \"00000010\";   -- \u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430elsedata_out &lt;= \"00000001\";   -- \u041d\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438end if;end if;when \"011\" =&gt;                         -- Line control registerdata_out &lt;= sig_DLAB &amp; gen_reg(6 downto 0);when \"100\" =&gt;                         -- Modem control registerdata_out &lt;= \"000\" &amp; mdm_ctl_reg;when \"101\" =&gt;                         -- Line status registerdata_out &lt;= \"0110000\" &amp; RxD_IRQ; when \"110\" =&gt;                         -- Modem status registerdata_out &lt;= \"00\" &amp; mdm_ctl_reg(0) &amp; mdm_ctl_reg(1) &amp; \"0000\"; -- CTS = RTS , DSR = DTRwhen others =&gt; null;end case;end if;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u0432 8250:<\/p>\n<pre><code class=\"vhdl\">if (device_select = '1') then    case isa_addr(2 downto 0) is        when \"000\" =&gt; -- \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439            if sig_DLAB = '1' then -- DLAB check                gen_reg &lt;= isa_data;            end if;        when \"001\" =&gt; -- \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439            if sig_DLAB = '0' then -- !DLAB check                int_ena_reg &lt;= isa_data(3 downto 0);            else--            gen_reg &lt;= isa_data; -\u2013 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u0435\u0442 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0440\u0442\u0430 \u0432 \u0431\u0438\u043e\u0441             end if;        when \u201c011\u201d =&gt; gen_reg(6 downto 0) &lt;= isa_data(6 downto 0);            sig_DLAB &lt;= isa_data(7);        when \u201c100\u201d =&gt; mdm_ctl_reg &lt;= isa_data(4 downto 0);        when others =&gt; null;    end case;end if;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438:<\/p>\n<pre><code class=\"vhdl\">    -- \u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430    mcu_isa_res &lt;= not isa_reset; -- \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u0431\u0440\u043e\u0441\u0430 ISA \u0448\u0438\u043d\u044b \u043d\u0430 MCU    mcu_DTR &lt;= enable_mouse;    device_select &lt;= '1' when (isa_aen = '0') and (device_rdy = '1') and                             (isa_addr(9 downto 3) = BASE_ADDR_ROM(to_integer(unsigned(base_addr_val)))) else '0';    isa_data &lt;= data_out when (isa_reset = '0') and (device_select = '1') and (isa_ior = '0') else (others =&gt; 'Z');    enable_IRQ &lt;= enable_mouse and mdm_ctl_reg(3);               -- OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f--    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0)) or int_ena_reg(1); -- TxD_IRQ \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0));                   -- \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c TxD_IRQ     -- OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f    IRQ4 &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (base_addr_val(0) = '0') and                                                (use_opt_irq = '0') and (device_rdy = '1') else 'Z'; -- COM1\/COM3    IRQ3 &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (base_addr_val(0) = '1') and                                                (use_opt_irq = '0') and (device_rdy = '1') else 'Z'; -- COM2\/COM4    IRQX &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (use_opt_irq = '1') and                                                                        (device_rdy = '1') else 'Z'; -- Custom<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0447\u0442\u043e PC \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430, \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043c\u044b\u0448\u0438. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0442\u0443\u0440\u0431\u043e\u043f\u0430\u0441\u043a\u0430\u043b\u0435.<\/p>\n<pre><code class=\"vbscript\">program SimpleMouseUART;uses  Dos, crt;const  COM1_BASE = $3F8;  COM2_BASE = $2F8;  COM3_BASE = $3E8;  COM4_BASE = $2E8;  IRQ7 = $0F;  IRQ6 = $0E;  IRQ5 = $0D;  IRQ4 = $0C;  IRQ3 = $0B;  PIC1_CMD = $20;  PIC1_IMR = $21;var  OldIntVec : pointer;  DataByte  : byte;  COM_BASE : word;  IRQ_VECTOR : word;  irq_mask : byte;function tohex(x: byte) : string;const hex: array[0..15] of char = '0123456789ABCDEF';var fdig: byte;begin fdig := x div 16; tohex := hex[fdig] + hex[x mod 16];end;function PortRead(_port:word): byte;begin  PortRead := Port[_port];end;procedure PortWrite(_port: word; value: byte);begin  Port[_port] := value;end;procedure COM1_Interrupt; interrupt;begin  if (PortRead(COM_BASE + 5) and $01) &lt;&gt; 0 then { LSR bit0: Data Ready }  begin    DataByte := PortRead(COM_BASE);    Write(tohex(DataByte)+' '); { For test, simply print symbol }  end;  { reset 8259A }  PortWrite(PIC1_CMD, $20);end;procedure InitCOM;begin  { set 1200 baud (for Microsoft Mouse) }  PortWrite(COM_BASE + 4, $00);      { MCR: 0 }  PortWrite(COM_BASE + 3, $80);      { LCR: DLAB=1 }  PortWrite(COM_BASE + 0, $60);      { DLL = 96 -&gt; 115200\/96 \u2248 1200 }  PortWrite(COM_BASE + 1, $00);      { DLM = 0 }  PortWrite(COM_BASE + 3, $03);      { DLAB = 0, 8 bit, no parity, 1 stop }  PortWrite(COM_BASE + 4, $0B);      { MCR: DTR + RTS + OUT2 (enable IRQ) }  PortWrite(COM_BASE + 1, $01);      { IER: enable rxd irq }  { Enable IRQ4 in PIC }  if (IRQ_VECTOR = IRQ3) then    irq_mask := $08;  if (IRQ_VECTOR = IRQ4) then    irq_mask := $10;  if (IRQ_VECTOR = IRQ5) then    irq_mask := $20;  if (IRQ_VECTOR = IRQ6) then    irq_mask := $40;  if (IRQ_VECTOR = IRQ7) then    irq_mask := $80;  PortWrite(PIC1_IMR, PortRead(PIC1_IMR) and (not irq_mask)); { enable IRQ }end;procedure DoneCOM;begin  PortWrite(COM_BASE + 1, 0);   { disable irq UART }  PortWrite(COM_BASE + 4, $00);      { MCR: DTR + RTS + OUT2 = 0 }  PortWrite(PIC1_IMR, PortRead(PIC1_IMR) or irq_mask); { disable IRQ}end;begin  IRQ_VECTOR := IRQ4;  COM_BASE := COM1_BASE;  ClrScr;  WriteLn('UART mouse demo');  DataByte := 0;  GetIntVec(IRQ_VECTOR, OldIntVec);  SetIntVec(IRQ_VECTOR, @COM1_Interrupt);  WriteLn('Listening COM port (Ctrl-Break to exit)...');  InitCOM;  repeat  until KeyPressed;  DoneCOM;  SetIntVec(IRQ_VECTOR, OldIntVec);  PortWrite(COM_BASE + 4, $00);      { MCR: 0 }  WriteLn('Done.');end.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e CPLD \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u0435\u0434\u0435\u0442 \u0441\u0435\u0431\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438: \u0441\u0438\u0433\u043d\u0430\u043b \u00ab\u0437\u0430\u043b\u0438\u043f\u0430\u0435\u0442\u00bb \u0438 \u043c\u044b\u0448\u044c \u043f\u043e\u0434\u0432\u0438\u0441\u0430\u0435\u0442. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 CPLD \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043a\u043e\u0434 \u0431\u044b\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0436\u0435\u043b\u0435\u0437\u043e \u0441\u0442\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u0441\u0442\u0430, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f COM \u043f\u043e\u0440\u0442\u0430 BIOS.<\/p>\n<pre><code class=\"vhdl\"> report \"=== TEST 11: BIOS detect test\";    write_reg(COM1_base_addr, \"010\", \"00111000\"); -- FCR reg    read_reg(COM1_base_addr, \"010\", read_val);    assert read_val(7 downto 0) \/= \"11111111\"        report \"FAIL: got \" &amp; to_string(read_val)        severity error;    read_reg(COM1_base_addr, LCR_addr, read_val);    write_reg(COM1_base_addr, LCR_addr, \"1\" &amp; read_val(6 downto 0));    write_reg(COM1_base_addr, RDR_addr, \"01010101\"); -- FCR reg    write_reg(COM1_base_addr, IER_addr, \"00000000\");    read_reg(COM1_base_addr, RDR_addr, read_val);    assert read_val(7 downto 0) = \"01010101\"        report \"FAIL: got \" &amp; to_string(read_val)        severity error;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0437 \u0435\u0449\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u0430\u0442\u044b: \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 IRQ, \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0445\u043e\u0434\u043e\u0432 ADC \u00ab\u043f\u043e\u0432\u0438\u0441\u0430\u0435\u0442 \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435\u00bb \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u0435\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043c\u0430\u0442\u0430\u043d\u0430\u043b\u0438\u0437 \u0438 \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u0435\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0438 \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e. \u0414\u043b\u044f \u043d\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043d\u043e\u0433\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0443\u043b\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0439. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0435\u0447\u0430\u0442\u0430\u044f \u043b\u043e\u0433\u0438 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 ADC \u0432 eeprom, \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043d\u043e\u0439 \u0430\u0442\u043c\u0435\u0433\u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u0435\u043b\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u043d\u0435\u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u041f\u043b\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043d\u0435\u0439 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u043e.<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f PS\/2 \u043c\u044b\u0448\u0438 \u0442\u043e\u0436\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u044c\u044e. \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f USB-\u043c\u044b\u0448\u044c, \u0430 \u0432\u043e\u0442 \u043d\u0430\u0439\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u043a\u0440\u0443\u0433\u043b\u044b\u043c \u0448\u0435\u0441\u0442\u0438\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u044a\u0451\u043c\u043e\u043c Mini-DIN \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0442\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0438\u0434\u0435\u0438 \u0441\u0442\u0430\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c USB-\u043c\u044b\u0448\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a ISA-\u0448\u0438\u043d\u0435.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0440\u043e\u0434\u0438\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 github \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c usb-mouse-2-isa. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u0442\u043e\u0442 \u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434, \u0447\u0442\u043e \u0438 \u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e: \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0434\u0435\u043b\u0430 \u0435\u0451 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u0443\u044e COM-\u043c\u044b\u0448\u044c \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438. <\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: ISA \u0447\u0430\u0441\u0442\u044c \u0438 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 EPM3064 \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0435\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u0430 \u043d\u0435 \u043a\u0430\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043c\u0430\u0441\u043a\u0430\u043c\u0438, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u043c\u0438 \u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u041f\u041e, \u0447\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 PS\/2 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c. USB \u0447\u0430\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 CH559T \u043e\u0442 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 WCH, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 USB-\u0445\u043e\u0441\u0442\u0430. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0432 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0435\u0440\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 CH559_EasyUSBHost. \u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u043c\u0430\u043b\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 PS\/2 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0442 USB-\u043c\u044b\u0448\u0438 HID-\u043e\u0442\u0447\u0451\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u043e \u043e\u0441\u044f\u043c X \u0438 Y, \u043d\u0430\u0436\u0430\u0442\u044b\u0445 \u043a\u043d\u043e\u043f\u043a\u0430\u0445 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0435\u0441\u0430 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438. \u0417\u0430\u0442\u0435\u043c \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442, \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u044b\u0448\u0438 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 CPLD.<\/p>\n<p>\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 HID \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b\u0448\u0438:<\/p>\n<pre><code class=\"cpp\">map = &amp;HIDdevice[hiddevice].mouse_map;report = RxBuffer;if (map-&gt;report_id != 0) {if (report[0] != map-&gt;report_id) {DEBUG_OUT(\"Wrong report ID: expected %d, got %d\\n\", map-&gt;report_id, report[0]);return;}report++;}if (len - (map-&gt;report_id?1:0) &lt; (map-&gt;report_length_bits + 7) &gt;&gt; 3) {DEBUG_OUT(\"Report too short: got %d bytes, expected at least %d\\n\",len - (map-&gt;report_id?1:0), (map-&gt;report_length_bits + 7) &gt;&gt; 3);return;}if (map-&gt;buttons_bit_size &gt; 0) {*buttons = (uint32_t)extract_field(report, map-&gt;buttons_bit_offset,map-&gt;buttons_bit_size, 0);}if (map-&gt;x_bit_size &gt; 0) {*dx = extract_field(report, map-&gt;x_bit_offset,map-&gt;x_bit_size, 1);}if (map-&gt;y_bit_size &gt; 0) {*dy = extract_field(report, map-&gt;y_bit_offset,map-&gt;y_bit_size, 1);}if (map-&gt;wheel_bit_size &gt; 0) {*dwheel = extract_field(report, map-&gt;wheel_bit_offset,map-&gt;wheel_bit_size, 1);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 CPLD \u0447\u0430\u0441\u0442\u0438: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0435\u043c\u0430 \u043d\u043e\u0432\u044b\u0445 7 \u0431\u0438\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e:<\/p>\n<pre><code class=\"vhdl\">    -- \u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430    int_rx_irq &lt;= RxD_IRQ; -- \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f Rx IRQ    mcu_DTR &lt;= enable_mouse;    device_select &lt;= '1' when (isa_aen = '0') and (device_rdy = '1') and                             (isa_addr(9 downto 3) = BASE_ADDR_ROM(to_integer(unsigned(base_addr_val)))) else '0';    isa_data &lt;= data_out when (isa_reset = '0') and (device_select = '1') and (isa_ior = '0') else (others =&gt; 'Z');    enable_IRQ &lt;= enable_mouse and mdm_ctl_reg(3);               -- OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f--    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0)) or int_ena_reg(1); -- TxD_IRQ \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0));                   -- \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c TxD_IRQ     -- OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f    IRQ4 &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (base_addr_val(0) = '0') and                                                (use_opt_irq = '0') and (device_rdy = '1') else 'Z'; -- COM1\/COM3    IRQ3 &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (base_addr_val(0) = '1') and                                                (use_opt_irq = '0') and (device_rdy = '1') else 'Z'; -- COM2\/COM4    IRQX &lt;= '0' when (IRQ_state = '0') and (enable_IRQ = '1') and (use_opt_irq = '1') and                                                                        (device_rdy = '1') else 'Z'; -- Custom<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0410\u0434\u0430\u043f\u0442\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445: \u043e\u0442 xi8088 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 4.77 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446 \u0434\u043e Pentium III 1200. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 MS-DOS \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438, Windows 3.11, Windows 95, 98, NT 4.0 \u0438 2000 \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 Kolibri OS. \u041e\u043d \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 USB, \u0432\u0441\u044f \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPL-3.0. \u0412 <a href=\"https:\/\/github.com\/Yftul\/usb-mouse-2-isa\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 usb-mouse-2-isa<\/a> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043d\u0430 C, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0434\u043b\u044f CPLD \u043d\u0430 VHDL \u0438 \u0442\u0435\u0441\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0445\u0435\u043c\u044b \u0438 \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b. \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Quartus \u0432\u0435\u0440\u0441\u0438\u0438 13 \u0438\u043b\u0438 \u0441\u0442\u0430\u0440\u0448\u0435 \u0434\u043b\u044f \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u043b\u043e\u0433\u0438\u043a\u0438 \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 WCHISPTool \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u0441\u0445\u0435\u043c\u044b, \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f CPLD \u0443\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f, \u043d\u043e \u043d\u0430 Aliexpress \u0438\u0445 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438 \u043f\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0446\u0435\u043d\u0435. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u043e\u0439 \u043f\u043e\u043d\u044b\u043d\u0435 Atmel ATF1504AS, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442, \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u0442 \u043a\u043e\u0433\u043e-\u0442\u043e \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0435\u0442\u0440\u043e\u041f\u041a, \u0432\u0435\u0434\u044c \u0442\u0435\u043c\u0430 \u044d\u0442\u0430 \u043d\u0435\u0438\u0441\u0447\u0435\u0440\u043f\u0430\u0435\u043c\u0430 \u0438 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u043c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c. <\/p>\n<p>\u0423\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435\u00a0\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438:<\/p>\n<p><a href=\"https:\/\/github.com\/Yftul\/ps-2-mouse-to-isa-replica\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/Yftul\/ps-2-mouse-to-isa-replica<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/Yftul\/usb-mouse-2-isa\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/Yftul\/usb-mouse-2-isa<\/a><\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1043440\/\">https:\/\/habr.com\/ru\/articles\/1043440\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u0440\u0435\u0442\u0440\u043e\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0435 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u0415\u0441\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0442\u043e \u0432 \u0440\u0435\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0443\u0434\u0430 \u043a\u0430\u043a \u0447\u0430\u0449\u0435 \u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0435\u0435, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043a\u0430\u043a \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u0438-  \u0441\u043e\u0440\u043e\u043a\u0430\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \u0418 \u0435\u0441\u043b\u0438 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043a \u0441\u0442\u0430\u0440\u043e\u043c\u0443 \u041f\u041a \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e: \u0441\u0442\u0430\u0440\u044b\u0435 AT \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0436\u0438\u0432\u0443\u0447\u0438\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c \u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0438 \u0441\u0442\u043e\u044f\u0442 \u043e\u043d\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c PS\/2 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430. \u0422\u043e \u0441 \u043c\u044b\u0448\u044c\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435: COM \u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0435 \u043c\u044b\u0448\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0448\u0430\u0440\u0438\u043a\u043e\u0432\u044b\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0438\u0445 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0445 \u0441\u0442\u0430\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441 \u0440\u0430\u0437\u044a\u0435\u043c\u043e\u043c PS\/2. \u041a\u0430\u043a\u0430\u044f-\u0442\u043e \u0438\u0445 \u0447\u0430\u0441\u0442\u044c \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 COM \u043f\u043e\u0440\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a, \u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u043c\u044b\u0448\u0435\u0439 \u043d\u0435\u043c\u043d\u043e\u0433\u043e, \u0434\u0430 \u0438 \u0441\u0430\u043c\u0438 PS\/2 \u043c\u044b\u0448\u0438 \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0436\u0435 USB \u043c\u044b\u0448\u044c \u043a \u043a\u0430\u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c XT \u0438\u043b\u0438 AT \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 486, \u0434\u0430 \u0435\u0449\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0448\u0442\u0430\u0442\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0430 \u0432\u044b\u043b\u0438\u043b\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u0430\u043a-\u0442\u043e \u043c\u043d\u0435 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c, \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0435\u0431\u0435 486 \u00ab\u0434\u043b\u044f \u0434\u0443\u0448\u0438\u00bb. \u0427\u0430\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a \u0432\u043e\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043c\u043e\u044f \u0441\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u043d\u0430\u044f USB \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 Zalman ZM-K300M \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 USB-PS\/2-AT. COM \u043f\u043e\u0440\u0442\u043e\u0432\u0443\u044e \u043c\u044b\u0448\u044c \u0436\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438 \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043c\u0443 Vogons, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u0443\u044e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443 PS\/2 \u043c\u044b\u0448\u0438 \u0434\u043b\u044f \u0448\u0438\u043d\u044b ISA. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 8250 \u0438, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 PS\/2 \u043c\u044b\u0448\u0438, \u043f\u043e\u0447\u0442\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b\u043e \u0438\u0445 \u043d\u0430 ISA \u0448\u0438\u043d\u0443. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0431\u044b\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b, \u0438 \u043c\u044b\u0448\u044c \u0432\u0435\u043b\u0430 \u0441\u0435\u0431\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043a \u0436\u0435 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u043e, \u043a\u0430\u043a PS\/2, \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044f\u0441\u044c \u0432 \u043b\u0443\u0447\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0448\u0430\u0440\u0438\u043a\u043e\u0432\u044b\u0445 COM-\u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0445 \u043c\u044b\u0448\u0435\u0439.\u0410\u0434\u0430\u043f\u0442\u0435\u0440 \u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u043d\u0430 \u0434\u0432\u0443\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 Altera EPM3064, \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0432\u0448\u0435\u0439 UART 8250 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0448\u0438\u043d\u043e\u0439 ISA.  \u0418 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Atmega8 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0432\u0448\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u044b PS\/2. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0434\u0432\u0443\u0445- \u0438 \u0442\u0440\u0451\u0445\u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0445 \u043c\u044b\u0448\u0435\u0439 Logitech \u0438 Microsoft \u0441 \u043a\u043e\u043b\u0435\u0441\u043e\u043c \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 XT \u0438 AT \u0441 \u0440\u0430\u043d\u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 8086 \u0438 286, \u0447\u0442\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e 486, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e.\u0417\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u0435\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043b\u0438\u0448\u044c \u043f\u0435\u0447\u0430\u0442\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438. \u041a \u043d\u0435\u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043e\u0431 \u044d\u0442\u043e\u043c \u044f \u0443\u0437\u043d\u0430\u043b \u043b\u0438\u0448\u044c \u0437\u0430\u043a\u0430\u0437\u0430\u0432 \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b. \u0420\u0435\u0448\u0438\u0432, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u043a \u0441\u0432\u044b\u0448\u0435 \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 CPLD, \u044f \u043f\u0440\u0438\u043d\u044f\u043b\u0441\u044f \u0437\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u0430. Atmega \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0442 PS\/2 \u043c\u044b\u0448\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u043e \u043e\u0441\u044f\u043c X \u0438 Y, \u043d\u0430\u0436\u0430\u0442\u044b\u0445 \u043a\u043d\u043e\u043f\u043a\u0430\u0445 \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0435\u0441\u0430 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438. \u0417\u0430\u0442\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442, \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u044b\u0448\u0438, \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e SPI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0432 CPLD \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0448\u0438\u043d\u0435 ISA \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0434\u0440\u0430\u0439\u0432\u0435\u0440. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u044b\u043b \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 github \u043f\u0440\u043e\u0435\u043a\u0442\u0430 avr-mouse-ps2-to-serial, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0430 \u0447\u0430\u0441\u0442\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 UART \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0443\u044e \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e soft SPI, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438.\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b UART \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u041a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u044d\u0442\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f), CPLD \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b, CPLD \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0438\u0434, \u0447\u0442\u043e \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u2014 \u0445\u043e\u0442\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 UART \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442.\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0434\u0435\u0441\u044c: \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u043c\u044b\u0448\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 CPLD \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u044d\u0442\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435, \u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 UART \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0443 \u043c\u044b\u0448\u0438. \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 SPI \u0441 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043c\u0435\u0433\u0430\u0433\u0435\u0440\u0446\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043c\u044b\u0448\u0438\u043d\u044b\u0445 1200 \u0431\u043e\u0434.#define SPI_SEND_BIT(bit_mask, tx_data) do {  spi_sck_low();  asm volatile(\u201cnop\\n\\t\u201d);  if ((tx_data) &amp; (bit_mask)) spi_mosi_high(); else spi_mosi_low();  asm volatile(\u201cnop\\n\\t\u201d);  spi_sck_high();  asm volatile(\u201cnop\\n\\t\u201d);  } while (0)#define SPI_SEND_PACKET(tx_data) do { SPI_SEND_BIT(0x40, (tx_data)); SPI_SEND_BIT(0x20, (tx_data)); SPI_SEND_BIT(0x10, (tx_data)); SPI_SEND_BIT(0x08, (tx_data)); SPI_SEND_BIT(0x04, (tx_data)); SPI_SEND_BIT(0x02, (tx_data)); SPI_SEND_BIT(0x01, (tx_data)); \/\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438\/ spi_sck_low(); spi_mosi_low(); }while (0);\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f 8250 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043d\u0443\u044e CPLD EPM3064. \u0412\u0441\u043f\u043b\u044b\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0441\u0445\u0435\u043c\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e atmega \u0432\u0438\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e IRQ \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 CPLD, \u043b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0437\u0430\u0432\u0438\u0441\u0435\u043b\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u043b\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 \u043b\u0438\u0441\u0442\u043e\u0447\u043a\u0435 \u0432 \u043a\u043b\u0435\u0442\u043e\u0447\u043a\u0443 \u0431\u044b\u043b\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0438 \u043d\u0430\u0431\u0440\u043e\u0441\u0430\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.\u041f\u043e\u0441\u043b\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442 ps-2-mouse-to-isa-replica, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438 \u0438 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c \u0431\u044b\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 CPLD. \u0420\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 8250, \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b BIOS \u043c\u043e\u0433 \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043b\u0430\u0442\u0443 \u043a\u0430\u043a COM \u043f\u043e\u0440\u0442, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c BIOS 486 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u044d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0443 AWARD \u0438 AMI BIOS. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 UART \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u0441\u0435\u043c\u044c \u0431\u0438\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u044b\u0448\u044c\u044e, \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u044c\u044e \u043b\u0438\u043d\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u0412\u0441\u0451, \u0447\u0442\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u044b\u0448\u0435\u0439 \u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043c\u0438 BIOS \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044f COM \u043f\u043e\u0440\u0442\u0430, \u0431\u044b\u043b\u043e \u043e\u0442\u0431\u0440\u043e\u0448\u0435\u043d\u043e, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0435\u0436\u0438\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e loopback. \u0425\u043e\u0442\u044f \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c CPLD, \u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438 \u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0438\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438. \u0418 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0431\u0438\u043e\u0441 COM \u043f\u043e\u0440\u0442 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043b\u0430\u0442\u044b \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e.\u0412 \u0438\u0442\u043e\u0433\u0435, \u043a\u043e\u0434 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 UART \u0441\u0442\u0430\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\u0427\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 8250:if (device_select = &#8216;1&#8217;) thendata_out &lt;= (others =&gt; &#8216;0&#8217;);case isa_addr(2 downto 0) iswhen &#171;000&#187; =&gt; &#8212; \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0434\u0430\u043d\u043d\u044b\u0445if sig_DLAB = &#8216;0&#8217; then &#8212; !DLAB checkdata_out &lt;= &#171;0&#187; &amp; rx_data_reg;  &#8212; \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 UARTelsedata_out &lt;= gen_reg;end if;when &#171;001&#187; =&gt; &#8212; \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044fif sig_DLAB = &#8216;0&#8217; then &#8212; !DLAB checkdata_out &lt;= &#171;0000&#187; &amp; int_ena_reg;elsedata_out &lt;= gen_reg;end if;when &#171;010&#187; =&gt; &#8212; \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f: xxxxx10x = \u043f\u0440\u0438\u043d\u044f\u0442 \u0441\u0438\u043c\u0432\u043e\u043b; \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430if RxD_IRQ = &#8216;1&#8217; then             &#8212; \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430data_out &lt;= &#171;00000100&#187;;       &#8212; \u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430elseif int_ena_reg(1) = &#8216;1&#8217; then &#8212; \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430data_out &lt;= &#171;00000010&#187;;   &#8212; \u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430elsedata_out &lt;= &#171;00000001&#187;;   &#8212; \u041d\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438end if;end if;when &#171;011&#187; =&gt;                         &#8212; Line control registerdata_out &lt;= sig_DLAB &amp; gen_reg(6 downto 0);when &#171;100&#187; =&gt;                         &#8212; Modem control registerdata_out &lt;= &#171;000&#187; &amp; mdm_ctl_reg;when &#171;101&#187; =&gt;                         &#8212; Line status registerdata_out &lt;= &#171;0110000&#187; &amp; RxD_IRQ; when &#171;110&#187; =&gt;                         &#8212; Modem status registerdata_out &lt;= &#171;00&#187; &amp; mdm_ctl_reg(0) &amp; mdm_ctl_reg(1) &amp; &#171;0000&#187;; &#8212; CTS = RTS , DSR = DTRwhen others =&gt; null;end case;end if;\u0417\u0430\u043f\u0438\u0441\u044c \u0432 8250:if (device_select = &#8216;1&#8217;) then    case isa_addr(2 downto 0) is        when &#171;000&#187; =&gt; &#8212; \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439            if sig_DLAB = &#8216;1&#8217; then &#8212; DLAB check                gen_reg &lt;= isa_data;            end if;        when &#171;001&#187; =&gt; &#8212; \u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439            if sig_DLAB = &#8216;0&#8217; then &#8212; !DLAB check                int_ena_reg &lt;= isa_data(3 downto 0);            else&#8212;            gen_reg &lt;= isa_data; -\u2013 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u0435\u0442 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0440\u0442\u0430 \u0432 \u0431\u0438\u043e\u0441             end if;        when \u201c011\u201d =&gt; gen_reg(6 downto 0) &lt;= isa_data(6 downto 0);            sig_DLAB &lt;= isa_data(7);        when \u201c100\u201d =&gt; mdm_ctl_reg &lt;= isa_data(4 downto 0);        when others =&gt; null;    end case;end if;\u041b\u043e\u0433\u0438\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u044b\u0448\u0438:    &#8212; \u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430    mcu_isa_res &lt;= not isa_reset; &#8212; \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0441\u0431\u0440\u043e\u0441\u0430 ISA \u0448\u0438\u043d\u044b \u043d\u0430 MCU    mcu_DTR &lt;= enable_mouse;    device_select &lt;= &#8216;1&#8217; when (isa_aen = &#8216;0&#8217;) and (device_rdy = &#8216;1&#8217;) and                             (isa_addr(9 downto 3) = BASE_ADDR_ROM(to_integer(unsigned(base_addr_val)))) else &#8216;0&#8217;;    isa_data &lt;= data_out when (isa_reset = &#8216;0&#8217;) and (device_select = &#8216;1&#8217;) and (isa_ior = &#8216;0&#8217;) else (others =&gt; &#8216;Z&#8217;);    enable_IRQ &lt;= enable_mouse and mdm_ctl_reg(3);               &#8212; OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f&#8212;    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0)) or int_ena_reg(1); &#8212; TxD_IRQ \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d    IRQ_state &lt;= (RxD_IRQ and int_ena_reg(0));                   &#8212; \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c TxD_IRQ     &#8212; OUT2 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f    IRQ4 &lt;= &#8216;0&#8217; when (IRQ_state = &#8216;0&#8217;) and (enable_IRQ = &#8216;1&#8217;) and (base_addr_val(0) = &#8216;0&#8217;) and                                                (use_opt_irq = &#8216;0&#8217;) and (device_rdy = &#8216;1&#8217;) else &#8216;Z&#8217;; &#8212; COM1\/COM3    IRQ3 &lt;= &#8216;0&#8217; when (IRQ_state = &#8216;0&#8217;) and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-482323","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=482323"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482323\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=482323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=482323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=482323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}