home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / vrac / pbwiz21.zip / EQUIP.BAS < prev    next >
BASIC Source File  |  1994-04-10  |  6KB  |  214 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         PBWIZ  Copyright (c) 1991-1994  Thomas G. Hanlin III         |
  4. '   |                      3544 E. Southern Ave. #104                      |
  5. '   |                            Mesa, AZ 85204                            |
  6. '   |                                                                      |
  7. '   |                      PowerBASIC Wizard's Library                     |
  8. '   |                                                                      |
  9. '   +----------------------------------------------------------------------+
  10.  
  11.    $DIM ARRAY
  12.  
  13.    DECLARE FUNCTION CommPorts% ()
  14.    DECLARE FUNCTION Floppies% ()
  15.    DECLARE SUB GetDisplay (INTEGER, INTEGER)
  16.    DECLARE SUB GetDOSv (INTEGER, INTEGER)
  17.    DECLARE SUB GetEMSm (INTEGER, INTEGER)
  18.    DECLARE SUB GetEMSv (INTEGER, INTEGER)
  19.    DECLARE FUNCTION GetExtM& ()
  20.    DECLARE SUB GetXMSm (LONG, LONG)
  21.    DECLARE SUB GetXMSv (INTEGER, INTEGER)
  22.    DECLARE FUNCTION NumProc% ()
  23.    DECLARE FUNCTION PCDate$ ()
  24.    DECLARE FUNCTION PCType% ()
  25.    DECLARE SUB PopWindow (INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, STRING)
  26.    DECLARE FUNCTION Processor% ()
  27.    DECLARE FUNCTION PrtPorts% ()
  28.    DECLARE SUB XQPrint (STRING, BYVAL INTEGER, BYVAL INTEGER, BYVAL INTEGER)
  29.  
  30.    $LINK "pbwiz.pbl"
  31.  
  32.    DEFINT A-Z
  33.  
  34.  
  35. '  ----- Pick the colors to use -----------------------------------------------
  36.  
  37.  
  38.    GetDisplay Adapter, Mono
  39.  
  40.    IF Mono THEN
  41.       Attr = CalcAttr (7, 0)
  42.    ELSE
  43.       Attr = CalcAttr (7, 1)
  44.    END IF
  45.  
  46.  
  47. '  ----- Clear the screen and pop up the window -------------------------------
  48.  
  49.  
  50.    CLS
  51.  
  52.    Fore = 15
  53.    IF Mono THEN
  54.       Back = 0
  55.    ELSE
  56.       Back = 1
  57.    END IF
  58.    Attr = CalcAttr(Fore, Back)
  59.    Frame = 1
  60.    Grow = 15
  61.    Shade = 0
  62.    Title$ = "PBWiz Equipment Info"
  63.    PopWindow 2, 2, 23, 77, Frame, Attr, Grow, Shade, 10, Title$
  64.  
  65.  
  66. '  ----- Add a text note inside the window ------------------------------------
  67.  
  68.  
  69.    Row = 3
  70.    XQPrint "This is a quick demo of the Equipment and Video routines provided", Row, 3, Attr
  71.    Row = Row + 1
  72.    XQPrint "by the PBWiz library for PowerBasic 3.0.", Row, 3, Attr
  73.    Row = Row + 2
  74.  
  75.  
  76. '  ----- Display processor type -----------------------------------------------
  77.  
  78.  
  79.    SELECT CASE Processor
  80.       CASE 0: St$ = "NEC V20"
  81.       CASE 1: St$ = "8088"
  82.       CASE 2: St$ = "80186"
  83.       CASE 3: St$ = "80286"
  84.       CASE 4: St$ = "80386"
  85.       CASE 5: St$ = "80486"
  86.       CASE ELSE: St$ = "unknown"
  87.    END SELECT
  88.    XQPrint "Processor: " + St$, Row, 3, Attr
  89.    Row = Row + 1
  90.  
  91.  
  92. '  ----- Display coprocessor type ---------------------------------------------
  93.  
  94.  
  95.    SELECT CASE NumProc
  96.       CASE 0: St$ = "none"
  97.       CASE 1: St$ = "8087"
  98.       CASE 2: St$ = "80287"
  99.       CASE 3: St$ = "80387"
  100.       CASE ELSE: St$ = "unknown"
  101.    END SELECT
  102.    XQPrint "Math chip: " + St$, Row, 3, Attr
  103.    Row = Row + 1
  104.  
  105.  
  106. '  ----- Display DOS version --------------------------------------------------
  107.  
  108.  
  109.    GetDOSv MajorV, MinorV
  110.    DOSv$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  111.    St$ = ""
  112.    IF MajorV > 9 THEN St$ = "   OS/2 Compatibility Box"
  113.    IF DRDOS THEN St$ = " (DR DOS)"
  114.    XQPrint "DOS version:" + DOSv$ + St$, Row, 3, Attr
  115.    Row = Row + 1
  116.  
  117.  
  118. '  ----- Display basic equipment info -----------------------------------------
  119.  
  120.  
  121.    XQPrint "Floppy drives:" + STR$(Floppies), Row, 3, Attr
  122.    Row = Row + 1
  123.  
  124.  
  125. '  ----- Display video adapter type -------------------------------------------
  126.  
  127.  
  128.    SELECT CASE Adapter
  129.       CASE 1: St$ = "MDA"
  130.       CASE 2: St$ = "Hercules"
  131.       CASE 3: St$ = "CGA"
  132.       CASE 4: St$ = "EGA"
  133.       CASE 5: St$ = "MCGA"
  134.       CASE 6: St$ = "VGA"
  135.    END SELECT
  136.    IF Mono THEN
  137.       St$ = St$ + " on a monochrome monitor"
  138.    ELSE
  139.       St$ = St$ + " on a color monitor"
  140.    END IF
  141.    XQPrint "Display: " + St$, Row, 3, Attr
  142.    Row = Row + 1
  143.  
  144.  
  145. '  ----- Display BIOS date and type -------------------------------------------
  146.  
  147.  
  148.    XQPrint "ROM BIOS date: " + PCDate$, Row, 3, Attr
  149.    Row = Row + 1
  150.  
  151.    SELECT CASE PCType
  152.       CASE 251, 254, 255: St$ = "PC/XT"
  153.       CASE 253: St$ = "PCjr"
  154.       CASE 252: St$ = "PC AT": ATtype = -1
  155.       CASE 250: St$ = "PS/2 Model 30"
  156.       CASE 249: St$ = "PC Convertible"
  157.       CASE 248: St$ = "PS/2 Model 70 or 80": ATtype = -1
  158.       CASE 45, 154: St$ = "Compaq Portable"
  159.       CASE ELSE: St$ = "unknown"
  160.    END SELECT
  161.    XQPrint "Computer type: " + St$, Row, 3, Attr
  162.    Row = Row + 1
  163.  
  164.  
  165. '  ----- Display extended and expanded memory info ----------------------------
  166.  
  167.  
  168.    IF ATtype THEN
  169.       XQPrint "Extended memory (BIOS):" + STR$(GetExtM&) + " Kbytes", Row, 3, Attr
  170.       Row = Row + 1
  171.    END IF
  172.  
  173.    IF ATtype THEN
  174.       GetXMSv MajorV, MinorV
  175.       GetXMSm LargeBlock&, TotalFree&
  176.       IF MajorV OR MinorV THEN
  177.          St$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  178.          XQPrint "Extended memory (XMS):", Row, 3, Attr
  179.          Row = Row + 1
  180.          XQPrint "   Version:" + St$, Row, 3, Attr
  181.          Row = Row + 1
  182.          XQPrint "   Free   :" + STR$(TotalFree&) + " Kbytes", Row, 3, Attr
  183.          Row = Row + 1
  184.       END IF
  185.    END IF
  186.  
  187.    GetEMSm TotalPages, FreePages
  188.    IF TotalPages THEN
  189.       GetEMSv MajorV, MinorV
  190.       St$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  191.       XQPrint "Expanded memory:", Row, 3, Attr
  192.       Row = Row + 1
  193.       XQPrint "   Version:" + St$, Row, 3, Attr
  194.       Row = Row + 1
  195.       XQPrint "   Total  :" + STR$(TotalPages * 16) + " Kbytes", Row, 3, Attr
  196.       Row = Row + 1
  197.       XQPrint "   Free   :" + STR$(FreePages * 16) + " Kbytes", Row, 3, Attr
  198.       Row = Row + 1
  199.    END IF
  200.  
  201.    St$ = STR$(CommPorts)
  202.    XQPrint "COM ports:" + St$, Row, 3, Attr
  203.    Row = Row + 1
  204.  
  205.    St$ = STR$(PrtPorts)
  206.    XQPrint "LPT ports:" + St$, Row, 3, Attr
  207.    Row = Row + 1
  208.  
  209.  
  210. '  ----- Make sure the DOS prompt doesn't get in the way ----------------------
  211.  
  212.  
  213.    LOCATE 24, 1, 1
  214.