home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / 8042.arj / 8042.TXT
Text File  |  1991-09-20  |  8KB  |  208 lines

  1.  
  2.             NMI.
  3.  
  4.     At power on  time, the non  maskable interrupt (NMI)  inot the 80286
  5. is masked off.
  6.  
  7. MASK ON :  Write to I/O address 70h, with data bit 7 equal to a logic 0.
  8. MASK OFF : Write to I/O address 70h, with data bit 7 equal to a logic 1.
  9.  
  10.     At the end of POST the system sets the NMI mask on ( NMI enable ).
  11.  
  12.     To determine the location of the failing adapter, write to any
  13. memory location within a given adapter. If parity checks was from that
  14. adapter, -IO CH CK will be reset to inactive.
  15.  
  16.  
  17.             Math Coprocessor
  18.  
  19.     mov    al,0
  20.     out     0f1h,al    ; Reset 80286
  21.  
  22.     mov    al,0
  23.     out     0f0h,al    ; Clear the latched Math Coprocessor '-busy' signal
  24.  
  25.  
  26.         Keyboard Status  Register.
  27.  
  28.     The status register  is an 8-bit  read-only register at  I/O address
  29. 64h. It has information about the state of the keyboard controller 8042.  It
  30. may be read at any time.
  31.  
  32. Bit 7 :  Parity Error -  A 0 indicated  the last byte  of data received from
  33.     keyboard  hadd  odd  parity.  A  1  indicated the last byte had even
  34.     parity. The keyboard should send data whith odd parity.
  35.  
  36. Bit 6 : Receive Time-Out - A  1 indicated that a transmition was started  by
  37.     the  keyboard  but  did  not  finish  within  the programmed receive
  38.     time-out delay.
  39.  
  40. Bit 5 : Transmit Time-Out - A 1 indicated that a transmition started by  the
  41.     keyboard  controller  was  not  properly  completed. If the transmit
  42.     byte was not clocked out  within the specified timelimit, this  will
  43.     be the only error.
  44.  
  45. Bit 4 : Inhibit Switch - This bit is updated whenever data is placed in  the
  46.     keyboard controler's output  buffer. It reflects  the states of  the
  47.     keyboard-inhibit switch. A 0 indicates the keyboard is inhibited.
  48.  
  49. Bit 3 : Command  /  Data  -  The   keyboard  controler's input buffer may be
  50.     addressed as either  I/O addres 60h  or 64h. Address  60h is defined
  51.     as the data port,  abd address 64h is  defined as the command  port.
  52.     Writing to address 64h sets this  bits to 1; writing to address  60h
  53.     sets this bit  to 0. The  controller uses this  bit to determine  if
  54.     the byte  is its  input buffer  should be  interpreted as  a command
  55.     byte or a data byte.
  56.  
  57. Bit 2 : System Flag - This flag is monitored by the system during the  reset
  58.     routing. If it  is a 0,  the reset was  caused by a  power on.   The
  59.     controler sets this bit to  0 at power on and  it is set to 1  after
  60.     succesful self  test.   This bit  can be  changed by  writing to the
  61.     system flag bit in the command byte ( 64h ).
  62.  
  63. Bit 1 :  Input Buffer Full  - A 0  indicated that the  keyboard controller's
  64.     input buffer  ( I/O  address 60h  or 64h  ) is  empty. A 1 indicated
  65.     that data has  been written into  the buffer but  the controller has
  66.     not read the data . When the controller read the input buffer,  this
  67.     bit will be return to 0.
  68.  
  69. Bit 0  : Output  Buffer Full  - A  0 indicated  that the keyboard controller
  70.     output buffer  has no  data. A  1 indicated  that the controller has
  71.     placed  data  into  its  output  buffer  but the system not read the
  72.     data. When  the system  reads the  output buffer  (I/O addres  60h),
  73.     this bit will return to a 0.
  74.  
  75.  
  76.         Keyboard Controller Commands ( 64h )
  77.  
  78. 20  Read  Keyboard  Controller's  Command  Byte  -  The controller sends its
  79.     cuurent command byte to its output buffer (60h).
  80.  
  81. 60  Write  Keyboard  Controller's  Command  Byte  -  The  next byte of  data
  82.     written to  I/O  address  60h   is  placed  in the controller's  command
  83.     byte. Bit definition of the command byte are as follows:
  84.  
  85.     Bit 7 Reaerved -Should be written as a 0
  86.  
  87.     Bit 6  IBM PC  Comatibility Mode  - Writing  a 1  to this bit causes the
  88.       controller to convert  the scan codes  received from the  keyboard
  89.       to those used by  the IBM PC.   This includes converting a  2-byte
  90.       break sequence to the 1-byte IBM PC format.
  91.  
  92.     Bit 5 IBM PC Mode  - Writing a 1 to  this bit programms the keyboard  to
  93.       support  the  IBM  PC  keyboard   interface.  In  this  mode   the
  94.       controller does not check parity or convert scan codes.
  95.  
  96.     Bit 4  Disable Keyboard  - Writing  1 to  this bit  disable the keyboard
  97.       interface by  driving the  'clock' line  low. Data  is not sent or
  98.       received.
  99.  
  100.     Bit 3 Inhibit Overrid  - Writing a 1  to this bit disables  the keyboard
  101.       inhibit function.
  102.  
  103.     Bit 2 System  Flag  - The  value written  to this  bit is  placed in the
  104.       system flsg bit of the controller's status register.
  105.  
  106.     Bit 1 Reserved - Should be written as a 0.
  107.  
  108.     Bit 0 Enable  Output-Buffer-Full  Interrupt -  Writing a  1 to  this bit
  109.       causes  the  controller  to  generate  an intterupt when it places
  110.       data into its output buffer.
  111.  
  112. AAh Self-Test - This commands  the controller to perform internal  diagnosic
  113.     tests.  A  hex  55  is  plased  in  the  output  buffer if no errors are
  114.     detected.
  115.  
  116. ABh Interface   Test  -  This  command  the controller to test the 'keyboard
  117.     data' lines. The test result is placed in the output buffer as follows:
  118.  
  119.     00 No error detected.
  120.     01 The 'keyboard clock' line is stuck low.
  121.     02 The 'keyboard clock' line is stuck high.
  122.     03 The 'keyboard data' line is stuck low.
  123.     04 The 'keyboard data' line is stuck high.
  124.  
  125. ACh Diagnostic Dump  - Sends 16  bytes of the  controller's RAM the  current
  126.     state if the  input port, the  curent stae of  the output port,  and the
  127.     controller's programm status word to the system.
  128.  
  129. ADh Disable Keyboard Feature - This commands send bit 4 of the  controller's
  130.     commnds byte.  This disables  tje keyboard  interface by  diriving clock
  131.     line low. Data will not be sent or received.
  132.  
  133. AEh Enable  Keyboard Interface  - This  command clear  bit 4  of the command
  134.     byte, which release the keyboard interface.
  135.  
  136. C0h Read Input Port  - This commands the  controller to read its  input port
  137.     and place the  data in its  output buffer. This  command should be  used
  138.     only if the output buffer is empty.
  139.  
  140. D0h  Read  Outpu  Port  -  This  commands  caused the controller to read its
  141.     output  port  and  place  the  data  in  its output buffer. This command
  142.     should be used only if the output buffer is empty.
  143.  
  144. D1h Write Output Port - The next byte of data written to I/O address 60h  is
  145.     places in the controller's output port.
  146.  
  147.     NOTE :  Bit 0  of the  controller's output  port is  connected to System
  148.        Reset. This bit should  not be written low  as it will reset  the
  149.        microprocessor.
  150.  
  151. E0h Read Test Input  - This command cause  the cotroller to read  its T0 and
  152.     T1  inputs.  This  data  is  placed  in  the  output  buffer. Data bit 0
  153.     represents T0, and dat bit 2 represents T1.
  154.  
  155. F0h - FFh Pulse  Output port - Bits  0 through 3 of  the controller's output
  156.       port may be  pulsed low for  approximately 6 microsecunds.  Bits 0
  157.       through 3 of this command indicate which bits are to be pulsed.  A
  158.       0 indicates that the bit should  be pulsed, and a 1 indicates  the
  159.       bit should not be modified.
  160.  
  161. I/O Ports
  162.  
  163.     The keyboard controller  has two I/O  ports, one assigned  for input
  164. and other for output. Two test input are used by the controller to read  the
  165. state of the keyboard's 'clock'(T0) and 'data' (T1).
  166.  
  167.     The following figures show bit definitions for the input and  output
  168. ports, and the test-input.
  169.  
  170.     Input-Port Bit Definition
  171.  
  172. Bit 7  Keyboard inhibit switch
  173.     0 = Keyboard inhibit
  174.     1 = Keyboard not inhibit
  175. Bit 6  Display switch - Primary display attached to:
  176.     0 = Color/Graphics adapter
  177.     1 = Monochrome adapter
  178. Bit 5  Manufacturing jumper
  179.     0 = Manufacturing jumper installed
  180.     1 = Jumper not installed
  181. Bit 4  RAM on the system board
  182.     0 = Enable 512K of system board RAM
  183.     0 = Enable 256K of system board RAM
  184. Bit 3  Reserved
  185. Bit 2  Reserved
  186. Bit 1  Reserved
  187. Bit 0  Reserved
  188.  
  189.  
  190.         Output-Port Bit Definition
  191.  
  192. Bit 7  Keyboard data (output)
  193. Bit 6  Keyboard clock (output)
  194. Bit 5  Input buffer empty
  195. Bit 4  Output buffer full
  196. Bit 3  Reserved
  197. Bit 2  Reserved
  198. Bit 1  Gate A20
  199. Bit 0  System Reset
  200.  
  201.         Test-Input Bit Definition
  202.  
  203. T1   Keyboard data (input)
  204. T0   Keyboard clock (input)
  205.  
  206.  
  207.  
  208.