8042键盘控制器介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

8042KeyboardController(FromIBMTechnicalReferenceManual)KeyboardCommandsInitializingthe8042KeyboardControllerSTATUS_PORTEQU064HKBD_OUT_BUFEQU060HKBD_INPT_BUFEQU060HKBD_CMD_BUFEQU064HKBD_DATA_BUFEQU060HPORT_AEQU060HPORT_BEQU061HOUT_BUF_FULLEQU01HINPT_BUF_FULLEQU02HSYS_FLAGEQU04HCMD_DATAEQU08HKEYBD_INHEQU10HTRANS_TMOUTEQU20HRCV_TMOUTEQU40HPARITY_EVENEQU80HINH_KEYBOARDEQU10HKBD_ENAEQU0AEHKBD_DISEQU0ADH;KeyboardCommandsKB_MENUEQU0F1HKB_ENABLEEQU0F4HKB_MAKEBREAKEQU0F7HKB_ECHOEQU0FEHKB_RESETEQU0FFHKB_LED_CMDEQU0EDH;KeyboardresponsesKB_OKEQU0AAHKB_ACKEQU0FAHKB_OVERRUNEQU0FFHKB_RESENDEQU0FEHKB_BREAKEQU0F0HKB_FAEQU010HKB_FEEQU020HKB_PR_LEDEQU040H;****************************************************************;INITKBD;Thisprocedureintializesthe8042;****************************************************************INITKBDPROCFARPUSHAXPUSHDXPUSHCXSUBCX,CXKBD1:INAL,STATUS_PORT;waitforinputbufferemptyTESTAL,INPT_BUF_FULLLOOPNZKBD1MOVAL,0AAH;SendselftestcommandOUTKBD_CMD_BUF,ALSUBCX,CX;WaitfortesttocompleteKBD2:INAL,STATUS_PORTTESTAL,OUT_BUF_FULLLOOPZKBD2INAL,KBD_OUT_BUF;CheckselftestresultCMPAL,055HJNEKBDFMOVAL,0ABH;SendtestInterfacecommandOUTKBD_CMD_BUF,ALSUBCX,CX;waitfortesttocompleteKBD3:INAL,STATUS_PORTTESTAL,OUT_BUF_FULLLOOPZKBD3INAL,KBD_OUT_BUF;DisplayInterfacetestresultsCMPAL,000H;Shouldbe00JNEKBDFMOVAL,060H;SendcommandbyteOUTKBD_CMD_BUF,ALSUBCX,CXKBD4:INAL,STATUS_PORT;WaituntilinputbufferTESTAL,INPT_BUF_FULL;isnotfullLOOPNZKBD4MOVAL,01101001B;SendcommandbyteOUTKBD_DATA_BUF,ALSUBCX,CXKBD5:INAL,STATUS_PORT;WaituntilinputbufferisnotfullTESTAL,INPT_BUF_FULLLOOPNZKBD5MOVAL,0FFH;SendKeyboardResetcommandOUTKBD_DATA_BUF,ALCALLDLY1SUBCX,CXKBD6:INAL,STATUS_PORT;WaituntiloutputbufferisfullTESTAL,OUT_BUF_FULLLOOPZKBD6INAL,KBD_OUT_BUFMOVAL,0EEH;SendEchoEECommandOUTKBD_DATA_BUF,ALCALLDLY1SUBCX,CXKBD7:INAL,STATUS_PORT;WaituntiloutputbufferisfullTESTAL,OUT_BUF_FULLLOOPZKBD7INAL,KBD_OUT_BUF;ReadEchofromKeyboardCALLDLY1CMPAL,0EEHJNEKBDFMOVAL,0F4H;EnabletheKeyboardOUTKBD_DATA_BUF,ALSUBCX,CXKBD8:INAL,STATUS_PORT;WaituntiloutputbufferisfullTESTAL,OUT_BUF_FULLLOOPZKBD8INAL,KBD_OUT_BUF;CleartheoutputbufferPOPCXPOPDXPOPAXRETKBDF:MOVAL,0FFHAL2DPLYJMP$INITKBDENDP;********************************************C8042PROCFAROUTSTATUS_PORT,ALSUBCX,CXC42:INAL,STATUS_PORTTESTAL,INPT_BUF_FULLLOOPNZC42RETC8042ENDP

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功