home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / mouse / lib / ega / demo / qbega.bas < prev    next >
Encoding:
BASIC Source File  |  1988-08-11  |  3.1 KB  |  144 lines

  1. '
  2. ' Test of function ega() and egas() in ega.lib.  Tests all of the parameters
  3. ' passed to these two functions.
  4. '
  5. ' To make qbega.exe:        QB QBEGA;
  6. '                LINK QBEGA,,,EGA;
  7. '            
  8. '
  9.  
  10. ' Interrogate the driver, get the version number.
  11. '
  12. '
  13.     e1% = &h00fa
  14.     e2% = 0
  15.     e3% = 0
  16.     e4% = 0
  17.     e5% = 0
  18.     
  19.     call ega(e1%, e2%, e3%, e4%, e5%)
  20.  
  21.     if (e2% <> 0) then 100
  22.     print "Mouse Driver not found"
  23.     end
  24. 100 print "Mouse Driver found, version ";
  25.     def seg = e5%
  26.     majver = peek(e2%)
  27.     minver = peek(e2%+1)
  28.     def seg
  29.     print " = ";
  30.     print using "#";majver;
  31.     print ".";
  32.     print using "##";minver
  33.     print
  34.     def seg
  35.     
  36.     
  37. ' Test the read and write register range functions F2 and F3.  Save old value,
  38. ' write new value, read value, restore original value, if value read was not
  39. ' the value written, then something is wrong.
  40. '
  41.     
  42.     print "Read/Write Range functions (F2, F3) ";
  43.     
  44.     nvals = 2
  45.     nints = int (nvals/2) + 1
  46.     start = &h0e
  47.  
  48.     dim orbuf%(1)
  49.     dim rdbuf%(1)
  50.     dim wrbuf%(1)
  51.     
  52.     orbuf%(0) = &haaaa
  53.     rdbuf%(0) = &hbbbb
  54.     wrbuf%(0) = &hcccc
  55. '
  56.     e1%  = &hF2                    ' read range    
  57.     e3%  = start * 256 + nvals            ' start reg & num regs
  58.     e4%  = 0                    ' crt controller
  59.     e5%  = 0                    ' dummy arg
  60.  
  61.     call ega(e1%, orbuf%(0), e3%, e4%, e5%)
  62.     
  63.     wrbuf%(0) = &heeff
  64.     e1% = &hF3                    ' write range
  65.     call ega(e1%, wrbuf%(0), e3%, e4%, e5%)
  66.     
  67.     
  68.     e1% = &hF2                    ' read range
  69.     call ega(e1%, rdbuf%(0), e3%, e4%, e5%)
  70.     
  71.     e1% = &hF3                    ' write range
  72.     call ega(e1%, orbuf%(0), e3%, e4%, e5%)
  73.     
  74.     if (rdbuf%(0) <> wrbuf%(0))  then print "FAILED" else print "PASSED"
  75.  
  76.  
  77. '
  78. ' Now test segment:offset calls
  79. '
  80.     print
  81.     print
  82.     print "Testing calls with segment:offset, using CALLS and EGAS"
  83.     print
  84.  
  85.     e1% = &h00fa
  86.     e2% = 0
  87.     e3% = 0
  88.     e4% = 0
  89.     e5% = 0
  90.     
  91.     calls egas(e1%, e2%, e3%, e4%, e5%)
  92.  
  93.     if (e2% <> 0) then 200
  94.     print "Mouse Driver not found"
  95.     end
  96. 200 print "Mouse Driver found, version ";
  97.     def seg = e5%
  98.     majver = peek(e2%)
  99.     minver = peek(e2%+1)
  100.     def seg
  101.     print " = ";
  102.     print using "#";majver;
  103.     print ".";
  104.     print using "##";minver
  105.     print
  106.     def seg
  107.     
  108.     print "Read/Write Range functions (F2, F3) ";
  109.     ' read the cursor location high and low registers 
  110.     
  111.     
  112.     nvals = 2
  113.     nints = int (nvals/2) + 1
  114.     start = &h0e
  115.  
  116.     orbuf%(0) = &haaaa
  117.     rdbuf%(0) = &hbbbb
  118.     wrbuf%(0) = &hcccc
  119. '
  120.     e1%  = &hF2                    ' read range    
  121.     e3%  = start * 256 + nvals            ' start reg & num regs
  122.     e4%  = 0                    ' crt controller
  123.     e5%  = 0                    ' dummy arg
  124.  
  125.     calls egas(e1%, orbuf%(0), e3%, e4%, e5%)
  126.     
  127.     wrbuf%(0) = &heeff
  128.     e1% = &hF3                    ' write range
  129.     calls egas(e1%, wrbuf%(0), e3%, e4%, e5%)
  130.     
  131.     
  132.     e1% = &hF2                    ' read range
  133.     calls egas(e1%, rdbuf%(0), e3%, e4%, e5%)
  134.     
  135.     e1% = &hF3                    ' write range
  136.     calls egas(e1%, orbuf%(0), e3%, e4%, e5%)
  137.     
  138.     if (rdbuf%(0) <> wrbuf%(0))  then print "FAILED" else print "PASSED"
  139.     print
  140.  
  141. ' Thats all
  142.  
  143.     end
  144.