home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / int74.spc < prev    next >
Text File  |  1990-01-05  |  10KB  |  271 lines

  1.  
  2.         Specification Pointing Device Hardware Interrupt (INT 74H)
  3.         ----------------------------------------------------------
  4. Description:
  5.         This routine is an interface between the pointing device and
  6.         pointing device driver. If an interrupt enters from the pointing
  7.         device, this routine will be invoked. After preparing the
  8.         data inputed from the pointing device, it will invoke the pointing
  9.         device driver (supported by the user).
  10.  
  11. function:
  12.         pointing device
  13.  
  14. input:  none
  15.  
  16. output: none
  17.  
  18. reference extension BIOS data area:
  19.  
  20.         022h        device drive far call offset
  21.         024h        device drive far call segment
  22.  
  23.         026h        poiting device flag
  24.                     bit 7   -- command in progress
  25.                     bit 6   -- resend
  26.                     bit 5   -- acknowledge
  27.                     bit 4   -- error
  28.                     bit 3   -- reserved = 0
  29.                     bit 2-0 -- index count of input data
  30.  
  31.         027h        pointing device flag
  32.                     bit 7   -- device drive far call flag
  33.                     bit 6   -- Pointer device interface initialization ok
  34.                     bit 5-3 -- reserved
  35.                     bit 2-0 -- package size
  36.  
  37.         028h        Pointing device buffer (1'st input data)
  38.         029h        Pointing device buffer (2'nd input data)
  39.         02Ah        Pointing device buffer (3'rd input data)
  40.         02Bh        Pointing device buffer (4'th input data)
  41.         02Ch        Pointing device buffer (5'th input data)
  42.         02Dh        Pointing device buffer (6'th input data)
  43.         02Eh        Pointing device buffer (7'th input data)
  44.         02Fh        Pointing device buffer (8'th input data)
  45.  
  46. I/O port defined:
  47.         REGISTER     DESCRIPTION
  48.         -----------------------------------------------------------------
  49.           60 (read)  Input data port
  50.  
  51.           64 (read)  8042 status byte
  52.                      bit 7 -- Parity Error
  53.                      bit 6 -- General Time out
  54.                      bit 5 -- Auxiliary Output buffer full
  55.                      bit 4 -- Inhibit Switch
  56.                      bit 3 -- Command/Data
  57.                      bit 2 -- System Flag
  58.                      bit 1 -- Input Buffer full
  59.                      bit 0 -- Output Buffer full
  60.           A0         Interrupt control register
  61. Note:
  62.       1.The following conditions are set after POST.
  63.         . pointing device is disabled
  64.         . sample rate is set to 100 number of reports/second
  65.         . resolution is set to 4 count/mm.
  66.         . scaling is set to 1:1
  67.  
  68.       2.No matter what the device drive far call flag is, this routine
  69.         always calls the user-defined function when index count = package
  70.         size.
  71.  
  72.       3.Befor calling the user service routine, INT 74h prepares the
  73.         following data (standard one) for the user.
  74.         word 1 on stack
  75.           low byte - status
  76.                 bit 0 - left button status
  77.                       - 1 : pressed
  78.                 bit 1 - right button status
  79.                       - 1 : pressed
  80.                 bit 2 - reserved (must be 0)
  81.                 bit 3 - reserved (must be 1)
  82.                 bit 4 - X data sign
  83.                       - 1 negative
  84.                 bit 5 - Y data sign
  85.                       - 1 negative
  86.                 bit 6 - X data overflow
  87.                       - 1 overflow
  88.                 bit 7 - Y data overflow
  89.                       - 1 overflow
  90.           high byte = 0.
  91.         word 2 on stack
  92.           low byte - X data
  93.                 bit 0 - least significant bit
  94.                 bit 7 - most  significant bit
  95.  
  96.         word 3 on stack
  97.           low byte - Y data
  98.                 bit 0 - least significant bit
  99.                 bit 7 - most  significant bit
  100.         word 4 on stack
  101.           low word = 0
  102.           high byte = 0
  103.  
  104.       4.All of the data format (including the standard one) in stack
  105.         is described as follows :
  106.         (1) Package size = 2 byte
  107.                   Format diagram
  108.             SS:SP+00H ── ┌───────────┐
  109.                          │    0      │
  110.                SP+01H ── ├───────────┤
  111.                          │    0      │
  112.                SP+02H ── ├───────────┤
  113.                          │    0      │
  114.                SP+03H ── ├───────────┤
  115.                          │    0      │
  116.                SP+04H ── ├───────────┤
  117.                          │    0      │
  118.                SP+05H ── ├───────────┤
  119.                          │    0      │
  120.                SP+06H ── ├───────────┤
  121.                          │ EXT:0028  │
  122.                SP+07H ── ├───────────┤
  123.                          │Last Input │
  124.                          └───────────┘
  125.  
  126.         (2) Package size = 4 byte
  127.                   Format diagram
  128.             SS:SP+00H ── ┌───────────┐
  129.                          │    0      │
  130.                SP+01H ── ├───────────┤
  131.                          │    0      │
  132.                SP+02H ── ├───────────┤
  133.                          │    0      │
  134.                SP+03H ── ├───────────┤
  135.                          │ Last Input│
  136.                SP+04H ── ├───────────┤
  137.                          │    0      │
  138.                SP+05H ── ├───────────┤
  139.                          │ EXT:002A  │
  140.                SP+06H ── ├───────────┤
  141.                          │ EXT:0028  │
  142.                SP+07H ── ├───────────┤
  143.                          │ EXT:0029  │
  144.                          └───────────┘
  145.  
  146.         (3) Package size = 6 byte
  147.                   Format diagram
  148.  
  149.             SS:SP+00H ── ┌───────────┐
  150.                          │    0      │
  151.                SP+01H ── ├───────────┤
  152.                          │    0      │
  153.                SP+02H ── ├───────────┤
  154.                          │ EXT:002B  │
  155.                SP+03H ── ├───────────┤
  156.                          │ Last Input│
  157.                SP+04H ── ├───────────┤
  158.                          │ EXT:002A  │
  159.                SP+05H ── ├───────────┤
  160.                          │ EXT:002C  │
  161.                SP+06H ── ├───────────┤
  162.                          │ EXT:0028  │
  163.                SP+07H ── ├───────────┤
  164.                          │ EXT:0029  │
  165.                          └───────────┘
  166.  
  167.         (4) Package size = 8 byte
  168.                   Format diagram
  169.  
  170.             SS:SP+00H ── ┌───────────┐
  171.                          │ EXT:002C  │
  172.                SP+01H ── ├───────────┤
  173.                          │ Last Input│
  174.                SP+02H ── ├───────────┤
  175.                          │ EXT:002B  │
  176.                SP+03H ── ├───────────┤
  177.                          │ EXT:002E  │
  178.                SP+04H ── ├───────────┤
  179.                          │ EXT:002A  │
  180.                SP+05H ── ├───────────┤
  181.                          │ EXT:002D  │
  182.                SP+06H ── ├───────────┤
  183.                          │ EXT:0028  │
  184.                SP+07H ── ├───────────┤
  185.                          │ EXT:0029  │
  186.                          └───────────┘
  187.  
  188.         (5) Package size = 1 byte
  189.                   Format diagram
  190.  
  191.             SS:SP+00H ── ┌───────────┐
  192.                          │    0      │
  193.                SP+01H ── ├───────────┤
  194.                          │    0      │
  195.                SP+02H ── ├───────────┤
  196.                          │    0      │
  197.                SP+03H ── ├───────────┤
  198.                          │    0      │
  199.                SP+04H ── ├───────────┤
  200.                          │    0      │
  201.                SP+05H ── ├───────────┤
  202.                          │    0      │
  203.                SP+06H ── ├───────────┤
  204.                          │ Last Input│
  205.                SP+07H ── ├───────────┤
  206.                          │    0      │
  207.                          └───────────┘
  208.  
  209.         (6) Package size = 3 byte
  210.                   Format diagram
  211.  
  212.             SS:SP+00H ── ┌───────────┐
  213.                          │    0      │
  214.                SP+01H ── ├───────────┤
  215.                          │    0      │
  216.                SP+02H ── ├───────────┤
  217.                          │ Last Input│
  218.                SP+03H ── ├───────────┤
  219.                          │    0      │
  220.                SP+04H ── ├───────────┤
  221.                          │ EXT:0029  │
  222.                SP+05H ── ├───────────┤
  223.                          │    0      │
  224.                SP+06H ── ├───────────┤
  225.                          │ EXT:0028  │
  226.                SP+07H ── ├───────────┤
  227.                          │    0      │
  228.                          └───────────┘
  229.  
  230.         (7) Package size = 5 byte
  231.                   Format diagram
  232.  
  233.             SS:SP+00H ── ┌───────────┐
  234.                          │    0      │
  235.                SP+01H ── ├───────────┤
  236.                          │    0      │
  237.                SP+02H ── ├───────────┤
  238.                          │ Last Input│
  239.                SP+03H ── ├───────────┤
  240.                          │ EXT:002A  │
  241.                SP+04H ── ├───────────┤
  242.                          │ EXT:0029  │
  243.                SP+05H ── ├───────────┤
  244.                          │ EXT:002B  │
  245.                SP+06H ── ├───────────┤
  246.                          │ EXT:0028  │
  247.                SP+07H ── ├───────────┤
  248.                          │    0      │
  249.                          └───────────┘
  250.  
  251.         (8) Package size = 7 byte
  252.                   Format diagram
  253.  
  254.             SS:SP+00H ── ┌───────────┐
  255.                          │ EXT:002B  │
  256.                SP+01H ── ├───────────┤
  257.                          │ Last Input│
  258.                SP+02H ── ├───────────┤
  259.                          │ EXT:002A  │
  260.                SP+03H ── ├───────────┤
  261.                          │ EXT:002D  │
  262.                SP+04H ── ├───────────┤
  263.                          │ EXT:0029  │
  264.                SP+05H ── ├───────────┤
  265.                          │ EXT:002C  │
  266.                SP+06H ── ├───────────┤
  267.                          │ EXT:0028  │
  268.                SP+07H ── ├───────────┤
  269.                          │    0      │
  270.                          └───────────┘
  271.