home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / basic / siqb10 / demo.bas next >
Encoding:
BASIC Source File  |  1994-03-08  |  52.3 KB  |  1,371 lines

  1.  
  2. '  ************************************************************************
  3. '  *                                                                      *
  4. '  * Author:   Paul Lapsansky                                             *
  5. '  * Date:     03/03/94                                                   *
  6. '  *                                                                      *
  7. '  * File:     demo.bas                                                   *
  8. '  *                                                                      *
  9. '  * Descrpt:  Demonstrates functions found in the SYSTEM INFO LIBRARY.   *
  10. '  *                                                                      *
  11. '  * Language: QuickBASIC 4.0+                                            *
  12. '  *                                                                      *
  13. '  * Available on: All machines.                                          *
  14. '  *                                                                      *
  15. '  * Restrictions: None.                                                  *
  16. '  *                                                                      *
  17. '  ************************************************************************
  18.  
  19.     REM $INCLUDE: 'SYSINFO.BI'
  20.  
  21.     DECLARE SUB Hardware ()
  22.     DECLARE SUB Memory ()
  23.     DECLARE SUB Video ()
  24.     DECLARE SUB Dos ()
  25.     DECLARE SUB Mouse ()
  26.     DECLARE SUB Shells ()
  27.     DECLARE SUB Drives ()
  28.     DECLARE SUB Network ()
  29.  
  30.     DEFINT A-Z
  31.  
  32.     CONST black = 0
  33.     CONST blue = 1
  34.     CONST green = 2
  35.     CONST cyan = 3
  36.     CONST red = 4
  37.     CONST magenta = 5
  38.     CONST brown = 6
  39.     CONST white = 7
  40.     CONST bright = 8
  41.     CONST blink = 16
  42.     CONST yellow = bright + brown
  43.  
  44. '   ************************************************************************
  45. '   *                 Display Hardware Information Screen                  *
  46. '   ************************************************************************
  47.  
  48.     COLOR white, black                   'white on black
  49.     CLS                                  'clear screen
  50.     Hardware                             'draw hardware screen
  51.     COLOR white + bright, blue           'bright white on blue
  52.  
  53.     getID model, submodel, rev           'get model information
  54.  
  55.     LOCATE 9, 24
  56.  
  57.     SELECT CASE model                    'display model type
  58.       CASE &HFF:
  59.         SELECT CASE submodel
  60.           CASE &H46:
  61.             PRINT "Olivetti";
  62.           CASE ELSE:
  63.             PRINT "IBM PC or compatible";
  64.         END SELECT
  65.       CASE &HFE:
  66.         SELECT CASE submodel
  67.           CASE &H43:
  68.             PRINT "Olivetti";
  69.           CASE ELSE:
  70.             PRINT "IBM PC/XT or compatible";
  71.        END SELECT
  72.       CASE &HFD:
  73.         PRINT "IBM PCjr";
  74.       CASE &HFC:
  75.         SELECT CASE submodel
  76.           CASE &H2:
  77.             PRINT "IBM XT-286";
  78.           CASE &H4:
  79.             PRINT "PS/2";
  80.           CASE &H5:
  81.             PRINT "PS/2";
  82.           CASE &H6:
  83.             PRINT "IBM 7552";
  84.           CASE &H8:
  85.             PRINT "Epson";
  86.           CASE &H9:
  87.             PRINT "PS/2";
  88.           CASE &HB:
  89.             PRINT "PS/1";
  90.           CASE &H20:
  91.             PRINT "Compaq";
  92.           CASE &H20:
  93.             PRINT "Epson";
  94.           CASE &H31:
  95.             PRINT "Epson";
  96.           CASE &H33:
  97.             PRINT "Epson";
  98.           CASE &H42:
  99.             PRINT "Olivetti";
  100.           CASE &H45:
  101.             PRINT "Olivetti";
  102.           CASE &H48:
  103.             PRINT "Olivetti";
  104.           CASE &H4F:
  105.             PRINT "Olivetti";
  106.           CASE &H50:
  107.             PRINT "Olivetti";
  108.           CASE &H51:
  109.             PRINT "Olivetti";
  110.           CASE &H52:
  111.             PRINT "Olivetti";
  112.           CASE &H94:
  113.             PRINT "Zenith 386";
  114.           CASE ELSE:
  115.             PRINT "IBM AT or compatible";
  116.         END SELECT
  117.       CASE &HFB:
  118.         SELECT CASE submodel
  119.           CASE &H4C:
  120.             PRINT "Olivetti";
  121.           CASE ELSE:
  122.             PRINT "IBM PC/XT or compatible";
  123.         END SELECT
  124.       CASE &HFA:
  125.         SELECT CASE submodel
  126.           CASE &H4E:
  127.             PRINT "Olivetti";
  128.           CASE ELSE:
  129.             PRINT "PS/2";
  130.         END SELECT
  131.       CASE &HF9:
  132.         PRINT "PC Convertible";
  133.       CASE &HF8:
  134.         SELECT CASE submodel
  135.           CASE &HE:
  136.             PRINT "PS/1";
  137.           CASE &HF:
  138.             PRINT "PS/1";
  139.           CASE &H1F:
  140.             PRINT "PS/ValuePoint";
  141.           CASE &H30:
  142.             PRINT "PS/1";
  143.           CASE &H49:
  144.             PRINT "PS/ValuePoint";
  145.           CASE &H4A:
  146.             PRINT "PS/ValuePoint";
  147.           CASE &H4B:
  148.             PRINT "PS/ValuePoint";
  149.           CASE &H5E:
  150.             PRINT "IBM ThinkPad";
  151.           CASE &H61:
  152.             PRINT "Olivetti";
  153.           CASE &H62:
  154.             PRINT "Olivetti";
  155.           CASE ELSE:
  156.             PRINT "PS/2";
  157.         END SELECT
  158.       CASE &HE1:
  159.         PRINT "PS/2";
  160.       CASE &H9A:
  161.         PRINT "Compaq XT";
  162.       CASE &H30:
  163.         PRINT "Sperry PC";
  164.       CASE &H2D:
  165.         PRINT "Compaq Deskpro";
  166.       CASE ELSE:
  167.         PRINT "Unknown model!";
  168.     END SELECT
  169.  
  170.     LOCATE 10, 24                        'display model I.D.
  171.     model$ = HEX$(model)
  172.     submodel$ = HEX$(submodel)
  173.     rev$ = HEX$(rev)
  174.     IF LEN(model$) < 2 THEN model$ = "0" + model$
  175.     IF LEN(submodel$) < 2 THEN submodel$ = "0" + submodel$
  176.     IF LEN(rev$) < 2 THEN rev$ = "0" + rev$
  177.  
  178.     PRINT model$; " "; submodel$; " "; rev$;
  179.  
  180.     LOCATE 11, 24
  181.     PRINT biosDate$;                     'display BIOS date
  182.  
  183.     cpu = getCPU                         'get processor type
  184.     LOCATE 12, 24
  185.  
  186.     SELECT CASE cpu                      'display processor type
  187.       CASE 1
  188.         PRINT "NEC V20"
  189.       CASE 2
  190.         PRINT "8088"
  191.       CASE 3
  192.         PRINT "80186"
  193.       CASE 4
  194.         PRINT "80286"
  195.       CASE 5
  196.         PRINT "80386"
  197.       CASE 6
  198.         PRINT "80486"
  199.     END SELECT
  200.  
  201.     npu = getNPU                         'get co-processor type
  202.     LOCATE 13, 24
  203.  
  204.     SELECT CASE npu                      'display co-processor type
  205.       CASE 1
  206.         PRINT "8087";
  207.       CASE 2
  208.         PRINT "80287";
  209.       CASE 3
  210.         IF cpu = 6 THEN
  211.           PRINT "Internal";              '486DX returns 80387
  212.         ELSE
  213.           PRINT "80387";
  214.         END IF
  215.       CASE ELSE
  216.         PRINT "Not Installed";
  217.     END SELECT
  218.  
  219.     LOCATE 14, 23                        'display number of serial ports
  220.     PRINT getCOM;
  221.  
  222.     LOCATE 15, 23                        'display number of parallel ports
  223.     PRINT getLPT;
  224.  
  225.     LOCATE 16, 24
  226.     IF chkEnhKeyb THEN                   'display keyboard type
  227.       PRINT "Enhanced Keyboard";
  228.     ELSE
  229.       PRINT "Standard Keyboard";
  230.     END IF
  231.  
  232.     IF getFeatures(DMA3, s8259, realtime, keyint, event, extbios, mca) = 0 THEN
  233.       COLOR red + bright, blue
  234.       LOCATE 10, 75
  235.       IF DMA3 THEN                       'display if DMA3 is available
  236.         PRINT "yes";
  237.       ELSE
  238.         PRINT "no";
  239.       END IF
  240.       LOCATE 11, 75
  241.       IF s8259 THEN                      'display if a slave 8259 is available
  242.         PRINT "yes";
  243.       ELSE
  244.         PRINT "no";
  245.       END IF
  246.       LOCATE 12, 75
  247.       IF realtime THEN                   'display if a realtime clock is avail
  248.         PRINT "yes";
  249.       ELSE
  250.         PRINT "no";
  251.       END IF
  252.       LOCATE 13, 75
  253.       IF keyint THEN                     'display if keyboard intercept is avail
  254.         PRINT "yes";
  255.       ELSE
  256.         PRINT "no";
  257.       END IF
  258.       LOCATE 14, 75
  259.       IF event THEN                      'display if external event available
  260.         PRINT "yes";
  261.       ELSE
  262.         PRINT "no";
  263.       END IF
  264.       LOCATE 15, 75
  265.       IF extbios THEN                    'display if extended BIOS available
  266.         PRINT "yes";
  267.       ELSE
  268.         PRINT "no";
  269.       END IF
  270.       LOCATE 16, 75
  271.       IF mca THEN                        'display if MCA bus available
  272.         PRINT "yes";
  273.       ELSE
  274.         PRINT "no";
  275.       END IF
  276.     END IF
  277.  
  278.     a$ = INPUT$(1)                       'wait for keystroke
  279.  
  280. '   ************************************************************************
  281. '   *                   Display Memory Information Screen                  *
  282. '   ************************************************************************
  283.  
  284.     COLOR white, black                   'white on black
  285.     CLS                                  'clear screen
  286.     Memory                               'draw memory screen
  287.     COLOR white + bright, blue           'bright white on blue
  288.  
  289.     LOCATE 8, 32
  290.     PRINT LTRIM$(STR$(getRAM)) + "K";    'display total conventional memory
  291.  
  292.     LOCATE 9, 32
  293.     ram = FRE(-1) / 1024
  294.     PRINT LTRIM$(STR$(ram)) + "K";       'display free conventional memory
  295.  
  296.     IF cpu > 3 THEN                      'check for '286 or higher
  297.      LOCATE 11, 32
  298.      ext& = getExt                       'get total extended memory
  299.      PRINT LTRIM$(STR$(ext&)) + "K";     'display total extended memory
  300.      LOCATE 12, 32
  301.      exta& = getAvailExt                 'get available extended memory
  302.      PRINT LTRIM$(STR$(exta&)) + "K";    'display available extended memory
  303.      IF chkXMS THEN                      'check for XMS driver
  304.        IF getXMSa(xmsa&, xmsb&) = 0 THEN 'get XMS information
  305.          LOCATE 14, 32
  306.          PRINT LTRIM$(STR$(xmsa&)) + "K"; 'display available XMS memory
  307.          LOCATE 15, 32
  308.          PRINT LTRIM$(STR$(xmsb&)) + "K"; 'display largest XMS block
  309.        END IF
  310.        IF getXMSv(major, minor, drvMaj, drvMin) = 0 THEN  'get XMS version
  311.          LOCATE 16, 32
  312.          PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  313.          LOCATE 17, 32
  314.          PRINT LTRIM$(STR$(drvMaj)) + "." + RIGHT$("0" + LTRIM$(STR$(drvMin)), 2)
  315.        END IF
  316.        IF getXMSi(HMA, A20) = 0 THEN      'get XMS information
  317.          COLOR red + bright, blue         'bright red on blue
  318.          LOCATE 18, 32
  319.          IF A20 THEN                      'display if A20 enabled
  320.            PRINT "Enabled";
  321.          ELSE
  322.            PRINT "Not Enabled";
  323.          END IF
  324.          LOCATE 19, 32
  325.          IF HMA THEN                      'display if HMA available
  326.            PRINT "Available";
  327.          ELSE
  328.            PRINT "Not Available";
  329.          END IF
  330.          COLOR white + bright, blue
  331.        END IF
  332.      END IF
  333.     END IF
  334.  
  335.     IF chkEMS THEN                        'check for EMS memory
  336.       IF getEMS(ems, emsa) = 0 THEN       'get EMS memory
  337.         LOCATE 8, 68
  338.         ems = ems * 16
  339.         PRINT LTRIM$(STR$(ems)) + "K";    'display total EMS memory
  340.         LOCATE 9, 68
  341.         emsa = emsa * 16
  342.         PRINT LTRIM$(STR$(emsa)) + "K";   'display available EMS memory
  343.       END IF
  344.       IF getEMSv(major, minor) = 0 THEN   'get EMS driver version
  345.         LOCATE 10, 68
  346.         PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  347.       END IF
  348.       IF getEMSi(handles, segment) = 0 THEN 'get EMS information
  349.         LOCATE 11, 68
  350.         PRINT HEX$(segment);              'display EMS page frame address
  351.         LOCATE 12, 67
  352.         PRINT handles;                    'display handles used
  353.       END IF
  354.     ELSE
  355.       LOCATE 8, 68
  356.       PRINT "0K"
  357.       LOCATE 9, 68
  358.       PRINT "0K"
  359.     END IF
  360.  
  361.     IF cpu > 3 THEN                    'check for '286 or higher
  362.       IF chkDPMI THEN                  'check for DPMI driver
  363.         COLOR bright + red, blue
  364.         LOCATE 14, 68
  365.         PRINT "yes";
  366.         COLOR bright + white, blue
  367.         IF getDPMIv(major, minor) = 0 THEN 'get DPMI version
  368.           LOCATE 15, 68
  369.           PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  370.         END IF
  371.       ELSE
  372.         COLOR bright + red, blue
  373.         LOCATE 14, 68
  374.         PRINT "no";
  375.       END IF
  376.     ELSE
  377.       COLOR bright + red, blue
  378.       LOCATE 14, 68
  379.       PRINT "no";
  380.     END IF
  381.  
  382.     emm = 0                            'default to EMM not installed
  383.     COLOR bright + white, blue
  384.     IF cpu > 4 AND chkXMS THEN         'check for '386 or higher and XMS
  385.       emm = getEMM                     'get '386 Extended Memory Manager type
  386.       LOCATE 21, 35
  387.       SELECT CASE emm
  388.         CASE 1
  389.           PRINT "Quadtel QMAPS or Hewlett-Packard HPMM.SYS";
  390.         CASE 2
  391.           PRINT "Microsoft EMM386.EXE";
  392.         CASE 3
  393.           PRINT "Microsoft Windows 3.x WIN386.EXE";
  394.         CASE 4
  395.           PRINT "DR-DOS 6.0 EMM386.SYS";
  396.         CASE 5
  397.           PRINT "Qualitas 386MAX";
  398.         CASE 6
  399.           PRINT "V Communication's Memory Commander";
  400.         CASE 7
  401.           PRINT "Quarterdeck QEMM-386";
  402.         CASE 8
  403.           PRINT "Helix Netroom RM386";
  404.         CASE ELSE
  405.           PRINT "Unknown or 386 Memory Manager not installed!";
  406.       END SELECT
  407.     END IF
  408.  
  409.     IF emm > 0 THEN                    'check for extended memory manager
  410.       IF chkVCPI THEN                  'check for VCPI driver
  411.         COLOR bright + red, blue
  412.         LOCATE 17, 68
  413.         PRINT "yes";
  414.         COLOR bright + white, blue
  415.         getVCPIv major, minor          'get VCPI version
  416.         LOCATE 18, 68
  417.         PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  418.       ELSE
  419.         COLOR bright + red, blue
  420.         LOCATE 17, 68
  421.         PRINT "no";
  422.         COLOR bright + white, blue
  423.       END IF
  424.     ELSE
  425.       COLOR bright + red, blue
  426.       LOCATE 17, 68
  427.       PRINT "no";
  428.       COLOR bright + white, blue
  429.     END IF
  430.  
  431.     a$ = INPUT$(1)                       'wait for keystroke
  432.  
  433. '   ************************************************************************
  434. '   *                   Display Video Information Screen                   *
  435. '   ************************************************************************
  436.  
  437.     COLOR white, black                   'white on black
  438.     CLS                                  'clear screen
  439.     Video                                'draw video screen
  440.     COLOR white + bright, blue           'bright white on blue
  441.  
  442.     LOCATE 10, 42
  443.     card = getVideo                      'get video card type
  444.     SELECT CASE card
  445.       CASE 1
  446.         PRINT "MDA - Monochrome Display Adapter";
  447.       CASE 2
  448.         PRINT "HGA - Hercules Graphics Adapter";
  449.       CASE 3
  450.         PRINT "CGA - Color Graphics Adapter";
  451.       CASE 4
  452.         PRINT "EGA - Enhanced Graphics Adapter";
  453.       CASE 5
  454.         PRINT "MCGA - Multi-Color Graphics Array";
  455.       CASE 6
  456.         PRINT "VGA - Video Graphics Array";
  457.     END SELECT
  458.  
  459.     IF card > 4 THEN                     'check for EGA or higher
  460.       LOCATE 11, 42
  461.       IF getCRT THEN
  462.         PRINT "Monochrome";
  463.       ELSE
  464.         PRINT "Color";
  465.       END IF
  466.     END IF
  467.  
  468.     IF card = 6 THEN                         'check for VGA
  469.       IF getVESA(major, minor, vram) THEN    'check for VESA support
  470.         COLOR bright + red, blue
  471.         LOCATE 14, 42
  472.         PRINT "yes";
  473.         LOCATE 15, 42
  474.         COLOR bright + white, blue
  475.         PRINT LTRIM$(STR$(major)) + "." + LTRIM$(STR$(minor))
  476.         LOCATE 16, 42
  477.         PRINT LTRIM$(STR$(vram)) + "K";
  478.       ELSE
  479.         COLOR bright + red, blue
  480.         LOCATE 14, 42
  481.         PRINT "no";
  482.       END IF
  483.     ELSE
  484.       COLOR bright + red, blue
  485.       LOCATE 14, 42
  486.       PRINT "no";
  487.     END IF
  488.  
  489.     a$ = INPUT$(1)                       'wait for keystroke
  490.  
  491. '   ************************************************************************
  492. '   *                    Display DOS Information Screen                    *
  493. '   ************************************************************************
  494.  
  495.     COLOR white, black                   'white on black
  496.     CLS                                  'clear screen
  497.     Dos                                  'draw video screen
  498.     COLOR white + bright, blue           'bright white on blue
  499.  
  500.     getDosV major, minor                 'get DOS version
  501.     oem = getDosOem                      'get DOS OEM number
  502.     drdos = getDrDosV                    'get DR-DOS type
  503.  
  504.     LOCATE 8, 21
  505.     PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  506.  
  507.     LOCATE 8, 26
  508.     IF major = 6 AND oem = 0 THEN        'check for IBM DOS 6.1
  509.       PRINT "(IBM DOS 6.1)";
  510.     END IF
  511.  
  512.     IF drdos THEN                        'check for DR-DOS
  513.       SELECT CASE drdos
  514.         CASE 1
  515.           PRINT "(Muliti-User DR-DOS)";
  516.         CASE &H60
  517.           PRINT "(DOS Plus)";
  518.         CASE &H63
  519.           PRINT "(DR-DOS 3.41)";
  520.         CASE &H64
  521.           PRINT "(DR-DOS 3.42)";
  522.         CASE &H65
  523.           PRINT "(DR-DOS 5.0)";
  524.         CASE &H67
  525.           PRINT "(DR-DOS 6.0)";
  526.         CASE &H70
  527.           PRINT "(PalmDOS)";
  528.         CASE &H71
  529.           PRINT "(DR-DOS 6.0)";
  530.         CASE &H72
  531.           PRINT "(Novell DOS 7.0)";
  532.       END SELECT
  533.     END IF
  534.  
  535.     IF get4DosV(major, minor) THEN       'check for 4DOS
  536.       PRINT "(4DOS ";
  537.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2);
  538.       PRINT ")";
  539.     END IF
  540.  
  541.     LOCATE 9, 21
  542.     oem$ = HEX$(oem)
  543.     IF LEN(oem$) < 2 THEN 
  544.       oem$ = "0" + oem$ + "h"
  545.     ELSE
  546.       oem$ = oem$ + "h"
  547.     END IF
  548.     PRINT oem$;                          'display OEM number
  549.  
  550.     IF drdos = 0 THEN
  551.       LOCATE 9, 26
  552.       SELECT CASE oem
  553.         CASE &H0
  554.           PRINT "(PC-DOS)";
  555.         CASE &H1
  556.           PRINT "(Compaq DOS)";
  557.         CASE &H4
  558.           PRINT "(AT&T DOS)";
  559.         CASE &H5
  560.           PRINT "(Zenith DOS)";
  561.         CASE &H6
  562.           PRINT "(Hewlett-Packard DOS)";
  563.         CASE &HD
  564.           PRINT "(Packard-Bell DOS)";
  565.         CASE &H16
  566.           PRINT "(DEC DOS)";
  567.         CASE &H23
  568.           PRINT "(Olivetti DOS)";
  569.         CASE &H29
  570.           PRINT "(Toshiba DOS)";
  571.         CASE &H4D
  572.           PRINT "(Hewlett-Packard DOS)";
  573.         CASE &HFF
  574.           PRINT "(MS-DOS)";
  575.       END SELECT
  576.     END IF
  577.  
  578.     COLOR bright + red, blue
  579.     LOCATE 10, 21
  580.     IF major > 4 OR drdos > &H65 THEN    'check for DOS 5.0+ or DR-DOS 6.0+
  581.       IF chkDosHigh THEN                 'see if DOS is loaded in high memory
  582.         PRINT "High";
  583.       ELSE
  584.         PRINT "Low";
  585.       END IF
  586.     ELSE
  587.       PRINT "Low";
  588.     END IF
  589.       LOCATE 7, 75
  590.     IF chkAnsi THEN                      'check for ANSI.SYS
  591.       PRINT "yes";
  592.     ELSE
  593.       PRINT "no";
  594.     END IF
  595.     LOCATE 8, 75
  596.     IF chkAppend THEN                    'check for APPEND.EXE
  597.       PRINT "yes";
  598.     ELSE
  599.       PRINT "no";
  600.     END IF
  601.     LOCATE 9, 75
  602.     IF chkAssign THEN                    'check for ASSIGN.COM
  603.       PRINT "yes";
  604.     ELSE
  605.       PRINT "no";
  606.     END IF
  607.     LOCATE 10, 75
  608.     IF chkDisplay THEN                   'check for DISPLAY.SYS
  609.       PRINT "yes";
  610.     ELSE
  611.       PRINT "no";
  612.     END IF
  613.     LOCATE 11, 75
  614.     IF chkDoskey THEN                    'check for DOSKEY.COM
  615.       PRINT "yes";
  616.     ELSE
  617.       PRINT "no";
  618.     END IF
  619.     LOCATE 12, 75
  620.     IF chkDriver THEN                    'check for DRIVER.SYS
  621.       PRINT "yes";
  622.     ELSE
  623.       PRINT "no";
  624.     END IF
  625.     LOCATE 13, 75
  626.     IF chkEGA THEN                       'check for EGA.SYS
  627.       PRINT "yes";
  628.     ELSE
  629.       PRINT "no";
  630.     END IF
  631.     LOCATE 14, 75
  632.     IF chkGraftabl THEN                  'check for GRAFTBL.COM
  633.       PRINT "yes";
  634.     ELSE
  635.       PRINT "no";
  636.     END IF
  637.     LOCATE 15, 75
  638.     IF chkGraphics THEN                  'check for GRAPHICS.COM
  639.       PRINT "yes";
  640.     ELSE
  641.       PRINT "no";
  642.     END IF
  643.     LOCATE 16, 75
  644.     IF chkKeyb THEN                      'check for KEYB.COM
  645.       PRINT "yes";
  646.     ELSE
  647.       PRINT "no";
  648.     END IF
  649.     LOCATE 17, 75
  650.     IF chkNlsfunc THEN                   'check for NLSFUNC.EXE
  651.       PRINT "yes";
  652.     ELSE
  653.       PRINT "no";
  654.     END IF
  655.     LOCATE 18, 75
  656.     IF chkPrint THEN                     'check for PRINT.COM
  657.       PRINT "yes";
  658.     ELSE
  659.       PRINT "no";
  660.     END IF
  661.     LOCATE 19, 75
  662.     IF chkShare THEN                     'check for SHARE.EXE
  663.       PRINT "yes";
  664.     ELSE
  665.       PRINT "no";
  666.     END IF
  667.     LOCATE 20, 75
  668.     IF chkShellb THEN                    'check for SHELLB.COM
  669.       PRINT "yes";
  670.     ELSE
  671.       PRINT "no";
  672.     END IF
  673.     LOCATE 21, 75
  674.     IF chkXMA2EMS THEN                   'check for XMA2EMS.SYS
  675.       PRINT "yes";
  676.     ELSE
  677.       PRINT "no";
  678.     END IF
  679.  
  680.     a$ = INPUT$(1)                       'wait for keystroke
  681.  
  682. '   ************************************************************************
  683. '   *                   Display Mouse Information Screen                   *
  684. '   ************************************************************************
  685.  
  686.     COLOR white, black                   'white on black
  687.     CLS                                  'clear screen
  688.     Mouse                                'draw mouse screen
  689.     COLOR white + bright, blue           'bright white on blue
  690.  
  691.     buttons = chkMouse                   'check for mouse and get buttons
  692.  
  693.     IF buttons THEN
  694.       COLOR bright + red, blue
  695.       LOCATE 10, 45
  696.       PRINT "yes";
  697.       COLOR bright + white, blue
  698.       LOCATE 11, 45
  699.       getMouseI MouseType, irq           'get mouse information
  700.       SELECT CASE MouseType
  701.         CASE 1
  702.           PRINT "Bus Mouse";
  703.         CASE 2
  704.           PRINT "Serial Mouse";
  705.         CASE 3
  706.           PRINT "Inport Mouse";
  707.         CASE 4
  708.           PRINT "PS/2 Mouse";
  709.         CASE 5
  710.           PRINT "Hewlett-Packard Mouse";
  711.       END SELECT
  712.       IF MouseType = 4 THEN              'display mouse IRQ
  713.         LOCATE 14, 45
  714.         PRINT "PS/2 Port";
  715.       ELSE
  716.         LOCATE 14, 44
  717.         PRINT irq;
  718.       END IF
  719.       getMouseV major, minor             'get mouse driver version
  720.       LOCATE 12, 45
  721.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  722.       LOCATE 13, 44
  723.       PRINT buttons;
  724.     ELSE
  725.       COLOR bright + red, blue
  726.       LOCATE 10, 45
  727.       PRINT "no";
  728.       COLOR bright + white, blue
  729.     END IF
  730.  
  731.     a$ = INPUT$(1)                       'wait for keystroke
  732.  
  733. '   ************************************************************************
  734. '   *                  Display Shell Information Screen                    *
  735. '   ************************************************************************
  736.  
  737.     COLOR white, black                   'white on black
  738.     CLS                                  'clear screen
  739.     Shells                               'draw shells screen
  740.     COLOR bright + red, blue
  741.  
  742.     LOCATE 8, 25
  743.     IF getWinV(major, minor, mode) THEN  'check for Windows
  744.       PRINT "yes";
  745.       COLOR bright + white, blue
  746.       LOCATE 9, 25
  747.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  748.       LOCATE 10, 25
  749.       IF mode THEN                       'display Windows mode
  750.         PRINT "Enhanced";
  751.       ELSE
  752.         PRINT "Standard";
  753.       END IF
  754.       COLOR bright + red, blue
  755.     ELSE
  756.       PRINT "no";
  757.     END IF
  758.  
  759.     LOCATE 12, 25
  760.     IF getDESQv(major, minor) THEN       'check for DESQview
  761.       PRINT "yes";
  762.       COLOR bright + white, blue
  763.       LOCATE 13, 25
  764.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  765.       COLOR bright + red, blue
  766.     ELSE
  767.       PRINT "no";
  768.     END IF
  769.  
  770.     LOCATE 15, 25
  771.     IF DosShell THEN                     'check for Microsoft DOS Shell
  772.       PRINT "yes";
  773.     ELSE
  774.       PRINT "no";
  775.     END IF
  776.  
  777.     LOCATE 16, 25
  778.     IF CPTask THEN                       'check for PCTools CPTask
  779.       PRINT "yes";
  780.     ELSE
  781.       PRINT "no";
  782.     END IF
  783.  
  784.     LOCATE 17, 25
  785.     IF TaskMax THEN                      'check for DR-DOS TaskMax
  786.       PRINT "yes";
  787.     ELSE
  788.       PRINT "no";
  789.     END IF
  790.  
  791.     LOCATE 8, 73
  792.     IF SmartDrv THEN                     'check for Microsoft SmartDrv
  793.       PRINT "yes";
  794.     ELSE
  795.       PRINT "no";
  796.     END IF
  797.  
  798.     LOCATE 9, 73
  799.     IF PcCache THEN                      'check for PCTools PC-Cache
  800.       PRINT "yes";
  801.     ELSE
  802.       PRINT "no";
  803.     END IF
  804.  
  805.     LOCATE 10, 73
  806.     IF PcKwik THEN                       'check for PC-Kwik
  807.       PRINT "yes";
  808.     ELSE
  809.       PRINT "no";
  810.     END IF
  811.  
  812.     LOCATE 11, 73
  813.     IF Ncache THEN                       'check for Norton Ncache
  814.       PRINT "yes";
  815.     ELSE
  816.       PRINT "no";
  817.     END IF
  818.  
  819.     LOCATE 12, 73
  820.     IF HyperDisk THEN                    'check for HyperDisk
  821.       PRINT "yes";
  822.     ELSE
  823.       PRINT "no";
  824.     END IF
  825.  
  826.     dblspc = DblSpace                    'check for MS-DOS 6 DoubleSpace
  827.     LOCATE 14, 73
  828.     IF dblspc THEN
  829.       PRINT "yes";
  830.     ELSE
  831.       PRINT "no";
  832.     END IF
  833.  
  834.     LOCATE 15, 73
  835.     IF Spaceman THEN                     'check for Spacemanager
  836.       PRINT "yes";
  837.     ELSE
  838.       PRINT "no";
  839.     END IF
  840.  
  841.     stack = Stacker                      'check for Stacker
  842.     LOCATE 16, 73
  843.     IF stack THEN
  844.       PRINT "yes";
  845.     ELSE
  846.       PRINT "no";
  847.     END IF
  848.  
  849.     cdext = MSCDEX(major, minor)         'check for CD-ROM extension
  850.     LOCATE 18, 73
  851.     IF cdext THEN
  852.       PRINT "yes";
  853.       COLOR bright + white, blue
  854.       LOCATE 19, 73
  855.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2)
  856.     ELSE
  857.       PRINT "no";
  858.     END IF
  859.  
  860.     a$ = INPUT$(1)                       'wait for keystroke
  861.  
  862. '   ************************************************************************
  863. '   *                  Display Drives Information Screen                   *
  864. '   ************************************************************************
  865.  
  866.     COLOR white, black                   'white on black
  867.     CLS                                  'clear screen
  868.     Drives                               'draw drives screen
  869.     COLOR bright + white, blue
  870.  
  871.     x = 5
  872.     y = 9
  873.  
  874.     IF getFlopType(a, b) = 0 THEN        'get floppy drive type
  875.       LOCATE y, x
  876.       SELECT CASE a
  877.         CASE 1
  878.           PRINT "A:";
  879.           LOCATE y, x + 8
  880.           PRINT "Floppy Drive, 5¼ 360K DD";
  881.           y = y + 1
  882.         CASE 2
  883.           PRINT "A:";
  884.           LOCATE y, x + 8
  885.           PRINT "Floppy Drive, 5¼ 1.2M HD";
  886.           y = y + 1
  887.         CASE 3
  888.           PRINT "A:";
  889.           LOCATE y, x + 8
  890.           PRINT "Floppy Drive, 3½ 720K DD";
  891.           y = y + 1
  892.         CASE 4
  893.           PRINT "A:"
  894.           LOCATE y, x + 8
  895.           PRINT "Floppy Drive, 3½ 1.44M HD"
  896.           y = y + 1
  897.         CASE 5
  898.           PRINT "A:"
  899.           LOCATE y, x + 8
  900.           PRINT "Floppy Drive, 3½ 2.88M ED"
  901.           y = y + 1
  902.         CASE ELSE
  903.       END SELECT
  904.       LOCATE y, x
  905.       SELECT CASE b
  906.         CASE 1
  907.           PRINT "B:";
  908.           LOCATE y, x + 8
  909.           PRINT "Floppy Drive, 5¼ 360K DD";
  910.           y = y + 1
  911.         CASE 2
  912.           PRINT "B:";
  913.           LOCATE y, x + 8
  914.           PRINT "Floppy Drive, 5¼ 1.2M HD";
  915.           y = y + 1
  916.         CASE 3
  917.           PRINT "B:";
  918.           LOCATE y, x + 8
  919.           PRINT "Floppy Drive, 3½ 720K DD";
  920.           y = y + 1
  921.         CASE 4
  922.           PRINT "B:"
  923.           LOCATE y, x + 8
  924.           PRINT "Floppy Drive, 3½ 1.44M HD"
  925.           y = y + 1
  926.         CASE 5
  927.           PRINT "B:"
  928.           LOCATE y, x + 8
  929.           PRINT "Floppy Drive, 3½ 2.88M ED"
  930.           y = y + 1
  931.         CASE ELSE
  932.       END SELECT
  933.     END IF
  934.  
  935.     num = 3                              'starting drive
  936.     lastdrive = getAvailDrvs             'get lastdrive
  937.  
  938. drvinfo:
  939.  
  940.     IF num <= lastdrive AND num <= 26 AND y <= 21 THEN
  941.       code = num + 64                    'convert to ASCII
  942.       drive$ = CHR$(code)
  943.       IF isCDROM(drive$) THEN            'check for CD-ROM drive
  944.         LOCATE y, x
  945.         PRINT drive$ + ":";
  946.         LOCATE y, x + 8
  947.         PRINT "CD-ROM Drive";
  948.         y = y + 1
  949.         num = num + 1
  950.         GOTO drvinfo
  951.       END IF
  952.       IF dblspc THEN                     'check for DblSpace drive
  953.         IF isDblSpace(drive$) THEN
  954.           LOCATE y, x
  955.           PRINT drive$ + ":";
  956.           LOCATE y, x + 8
  957.           PRINT "DblSpace Drive";
  958.           IF getDrvSpace(drive$, SecPerClus&, FreeClus&, BytesPerSec&, TotalClus&) = 0 THEN
  959.             ClusSize& = BytesPerSec& * SecPerClus&          'calc. cluster size
  960.             FreeSpace& = (FreeClus& * ClusSize&) / 1024000  'calc. available space
  961.             TotalSpace& = TotalClus& * ClusSize& / 1024000  'calc. total space
  962.             LOCATE y, x + 51
  963.             PRINT USING "##,###_M"; FreeSpace&
  964.             LOCATE y, x + 66
  965.             PRINT USING "##,###_M"; TotalSpace&
  966.           END IF
  967.           y = y + 1
  968.           num = num + 1
  969.           GOTO drvinfo
  970.         END IF
  971.       END IF
  972.       IF stack THEN                      'check for Stacker drive
  973.         IF isStacker(drive$) THEN
  974.           LOCATE y, x
  975.           PRINT drive$ + ":";
  976.           LOCATE y, x + 8
  977.           PRINT "Stacker Drive";
  978.           IF getDrvSpace(drive$, SecPerClus&, FreeClus&, BytesPerSec&, TotalClus&) = 0 THEN
  979.             ClusSize& = BytesPerSec& * SecPerClus&          'calc. cluster size
  980.             FreeSpace& = (FreeClus& * ClusSize&) / 1024000  'calc. available space
  981.             TotalSpace& = TotalClus& * ClusSize& / 1024000  'calc. total space
  982.             LOCATE y, x + 51
  983.             PRINT USING "##,###_M"; FreeSpace&
  984.             LOCATE y, x + 66
  985.             PRINT USING "##,###_M"; TotalSpace&
  986.           END IF
  987.           y = y + 1
  988.           num = num + 1
  989.           GOTO drvinfo
  990.         END IF
  991.       END IF
  992.       IF chkRemovable(drive$, removable) = 0 THEN  'check for fixed disk
  993.         IF removable THEN
  994.           LOCATE y, x
  995.           PRINT drive$ + ":";
  996.           LOCATE y, x + 8
  997.           PRINT "Fixed Disk";
  998.           IF getDrvSpace(drive$, SecPerClus&, FreeClus&, BytesPerSec&, TotalClus&) = 0 THEN
  999.             ClusSize& = BytesPerSec& * SecPerClus&          'calc. cluster size
  1000.             FreeSpace& = (FreeClus& * ClusSize&) / 1024000  'calc. available space
  1001.             TotalSpace& = TotalClus& * ClusSize& / 1024000  'calc. total space
  1002.             LOCATE y, x + 51
  1003.             PRINT USING "##,###_M"; FreeSpace&
  1004.             LOCATE y, x + 66
  1005.             PRINT USING "##,###_M"; TotalSpace&
  1006.           END IF
  1007.           IF getDrvInfo(drive$, cyl, heads, sectors) = 0 THEN 'get fixed disk info
  1008.             y = y + 1
  1009.             LOCATE y, x + 9
  1010.             PRINT heads; "Heads,"; cyl; "Cylinders,"; sectors; "Sec/Track";
  1011.           END IF
  1012.           y = y + 1
  1013.           num = num + 1
  1014.           GOTO drvinfo
  1015.         ELSE
  1016.           LOCATE y, x
  1017.           PRINT drive$ + ":";
  1018.           LOCATE y, x + 8
  1019.           PRINT "Removable";
  1020.           y = y + 1
  1021.           num = num + 1
  1022.           GOTO drvinfo
  1023.         END IF
  1024.       END IF
  1025.       IF chkRemote(drive$, remote) = 0 THEN  'check for network drive
  1026.         IF remote THEN
  1027.           LOCATE y, x
  1028.           PRINT drive$ + ":";
  1029.           LOCATE y, x + 8
  1030.           PRINT "Remote Drive";
  1031.           IF getDrvSpace(drive$, SecPerClus&, FreeClus&, BytesPerSec&, TotalClus&) = 0 THEN
  1032.             ClusSize& = BytesPerSec& * SecPerClus&          'calc. cluster size
  1033.             FreeSpace& = (FreeClus& * ClusSize&) / 1024000  'calc. available space
  1034.             TotalSpace& = TotalClus& * ClusSize& / 1024000  'calc. total space
  1035.             LOCATE y, x + 51
  1036.             PRINT USING "##,###_M"; FreeSpace&
  1037.             LOCATE y, x + 66
  1038.             PRINT USING "##,###_M"; TotalSpace&
  1039.           END IF
  1040.           y = y + 1
  1041.         END IF
  1042.       END IF
  1043.       num = num + 1
  1044.       GOTO drvinfo
  1045.     END IF
  1046.  
  1047.     a$ = INPUT$(1)                       'wait for keystroke
  1048.  
  1049.     IF num <= lastdrive AND num <= 26 THEN  'see if a second page is needed
  1050.       y = 9                                 'reset y-axis
  1051.       COLOR white, black                    'white on black
  1052.       CLS                                   'clear screen
  1053.       Drives                                'draw new drives screen
  1054.       COLOR white + bright, blue            'bright white on blue
  1055.       GOTO drvinfo                          'display remaining drive info
  1056.     END IF
  1057.  
  1058. '   ************************************************************************
  1059. '   *                  Display Network Information Screen                  *
  1060. '   ************************************************************************/
  1061.  
  1062.     COLOR white, black                   'white on black
  1063.     CLS                                  'clear screen
  1064.     Network                              'draw network screen
  1065.     COLOR bright + red, blue
  1066.  
  1067.     LOCATE 8, 25
  1068.     IF chkIPX THEN                       'check for IPX
  1069.       PRINT "yes";
  1070.     ELSE
  1071.       PRINT "no";
  1072.     END IF
  1073.  
  1074.     LOCATE 10, 25
  1075.     IF Netbios THEN                      'check for Netbios
  1076.       PRINT "yes";
  1077.     ELSE
  1078.       PRINT "no";
  1079.     END IF
  1080.   
  1081.     LOCATE 12, 25
  1082.     IF NetShell(major, minor, rev, mem) THEN 'check for NetShell
  1083.       PRINT "yes";
  1084.       COLOR white + bright, blue
  1085.       LOCATE 13, 25
  1086.       PRINT LTRIM$(STR$(major)) + "." + RIGHT$("0" + LTRIM$(STR$(minor)), 2) + "." + RIGHT$("0" + LTRIM$(STR$(rev)), 2);
  1087.       LOCATE 14, 25
  1088.       SELECT CASE mem                    'display memory type
  1089.         CASE 0
  1090.           PRINT "Conventional Memory";
  1091.         CASE 1
  1092.           PRINT "Expanded Memory";
  1093.         CASE 2
  1094.           PRINT "Extended Memory";
  1095.         CASE ELSE
  1096.           PRINT "Unknown";
  1097.       END SELECT
  1098.  
  1099.       server$ = getNetName(version, subver, conn, use, vol, peak) 'get server info
  1100.       LOCATE 16, 25
  1101.       PRINT server$;                     'display network server name
  1102.       LOCATE 17, 25
  1103.       PRINT LTRIM$(STR$(version)) + "." + RIGHT$("0" + LTRIM$(STR$(subver)), 2);
  1104.       LOCATE 8, 74
  1105.       PRINT conn;                        'display number of connections
  1106.       LOCATE 9, 74
  1107.       PRINT use;                         'display connections in use
  1108.       LOCATE 10, 74
  1109.       PRINT peak;                        'display peak connections used
  1110.       LOCATE 11, 74
  1111.       PRINT vol;                         'display number of volumes supported
  1112.       IF getLoginTime(year, month, day, hour, min, sec, week) = 0 THEN 
  1113.         LOCATE 19, 25
  1114.         year$ = RIGHT$("0" + MID$(STR$(year), 2), 2)
  1115.         month$ = RIGHT$("0" + MID$(STR$(month), 2), 2)
  1116.         day$ = RIGHT$("0" + MID$(STR$(day), 2), 2)
  1117.         hour$ = RIGHT$("0" + MID$(STR$(hour), 2), 2)
  1118.         min$ = RIGHT$("0" + MID$(STR$(min), 2), 2)
  1119.         sec$ = RIGHT$("0" + MID$(STR$(sec), 2), 2)
  1120.         PRINT month$ + "-" + day$ + "-" + year$ + " at " + hour$ + ":" + min$ + ":" + sec$
  1121.       END IF
  1122.     ELSE
  1123.       PRINT "no";
  1124.     END IF
  1125.  
  1126.     a$ = INPUT$(1)                       'wait for keystroke
  1127.     COLOR white, black                   'white on black
  1128.     CLS                                  'clear screen
  1129.     END
  1130.  
  1131. SUB Dos
  1132.  
  1133.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1134.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1135.   PRINT "║                                 Version 1.0                                  ║";
  1136.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1137.   PRINT "║                               │     DOS     │                                ║";
  1138.   PRINT "║                               └─────────────┘                                ║";
  1139.   PRINT "║                                                ANSI.SYS installed     :      ║";
  1140.   PRINT "║  DOS Version    :                              APPEND.EXE installed   :      ║";
  1141.   PRINT "║  DOS OEM Number :                              ASSIGN.COM installed   :      ║";
  1142.   PRINT "║  DOS Loaded     :                              DISPLAY.SYS installed  :      ║";
  1143.   PRINT "║                                                DOSKEY.COM installed   :      ║";
  1144.   PRINT "║                                                DRIVER.SYS installed   :      ║";
  1145.   PRINT "║                                                EGA.SYS installed      :      ║";
  1146.   PRINT "║                                                GRAFTABL.COM installed :      ║";
  1147.   PRINT "║                                                GRAPHICS.COM installed :      ║";
  1148.   PRINT "║                                                KEYB.COM installed     :      ║";
  1149.   PRINT "║                                                NLSFUNC.EXE installed  :      ║";
  1150.   PRINT "║                                                PRINT.COM installed    :      ║";
  1151.   PRINT "║                                                SHARE.EXE installed    :      ║";
  1152.   PRINT "║                                                SHELLB.COM installed   :      ║";
  1153.   PRINT "║                                                XMS2EMS.SYS installed  :      ║";
  1154.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1155.   PRINT "║                        Press any key for next screen...                      ║";
  1156.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1157.   COLOR 7, 0
  1158.  
  1159. END SUB
  1160.  
  1161. SUB Drives
  1162.  
  1163.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1164.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1165.   PRINT "║                                 Version 1.0                                  ║";
  1166.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1167.   PRINT "║                               │    Drives   │                                ║";
  1168.   PRINT "║                               └─────────────┘                                ║";
  1169.   PRINT "║ Drive     Type                                     Free Space    Total Space ║";
  1170.   PRINT "║ ─────     ───────────────────────────────────────  ──────────    ─────────── ║";
  1171.   PRINT "║                                                                              ║";
  1172.   PRINT "║                                                                              ║";
  1173.   PRINT "║                                                                              ║";
  1174.   PRINT "║                                                                              ║";
  1175.   PRINT "║                                                                              ║";
  1176.   PRINT "║                                                                              ║";
  1177.   PRINT "║                                                                              ║";
  1178.   PRINT "║                                                                              ║";
  1179.   PRINT "║                                                                              ║";
  1180.   PRINT "║                                                                              ║";
  1181.   PRINT "║                                                                              ║";
  1182.   PRINT "║                                                                              ║";
  1183.   PRINT "║                                                                              ║";
  1184.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1185.   PRINT "║                        Press any key for next screen...                      ║";
  1186.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1187.   COLOR 7, 0
  1188.  
  1189. END SUB
  1190.  
  1191. SUB Hardware
  1192.  
  1193.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1194.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1195.   PRINT "║                                 Version 1.0                                  ║";
  1196.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1197.   PRINT "║                               │  Hardware   │                                ║";
  1198.   PRINT "║                               └─────────────┘                                ║";
  1199.   PRINT "║                                                                              ║";
  1200.   PRINT "║                                                                              ║";
  1201.   PRINT "║  BIOS Category     :                                                         ║";
  1202.   PRINT "║  BIOS I.D.         :                    DMA Channel 3 used            :      ║";
  1203.   PRINT "║  BIOS Date         :                    2nd 8259 installed            :      ║";
  1204.   PRINT "║  Processor         :                    Real Time Clock installed     :      ║";
  1205.   PRINT "║  Math Co-processor :                    Keyboard Int. (INT 15/AH=4F)  :      ║";
  1206.   PRINT "║  Serial Ports      :                    Wait for External Event       :      ║";
  1207.   PRINT "║  Parallel Ports    :                    Extended BIOS allocated       :      ║";
  1208.   PRINT "║  Keyboard Type     :                    Micro Channel Bus             :      ║";
  1209.   PRINT "║                                                                              ║";
  1210.   PRINT "║                                                                              ║";
  1211.   PRINT "║                                                                              ║";
  1212.   PRINT "║                                                                              ║";
  1213.   PRINT "║                                                                              ║";
  1214.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1215.   PRINT "║                        Press any key for next screen...                      ║";
  1216.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1217.   COLOR 7, 0
  1218.  
  1219. END SUB
  1220.  
  1221. SUB Memory
  1222.  
  1223.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1224.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1225.   PRINT "║                                 Version 1.0                                  ║";
  1226.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1227.   PRINT "║                               │   Memory    │                                ║";
  1228.   PRINT "║                               └─────────────┘                                ║";
  1229.   PRINT "║                                                                              ║";
  1230.   PRINT "║  Total Conventional Memory :               Total EMS Memory    :             ║";
  1231.   PRINT "║  Free Conventional Memory  :               Free EMS Memory     :             ║";
  1232.   PRINT "║                                            EMS Version         :             ║";
  1233.   PRINT "║  Total Extended Memory     :               EMS Address Page    :             ║";
  1234.   PRINT "║  Free Extended Memory      :               Handles in Use      :             ║";
  1235.   PRINT "║                                                                              ║";
  1236.   PRINT "║  Available XMS Memory      :               DPMI Installed      :             ║";
  1237.   PRINT "║  Largest XMS Memory Block  :               DPMI Version        :             ║";
  1238.   PRINT "║  XMS Version               :                                                 ║";
  1239.   PRINT "║  XMS Driver                :               VCPI Installed      :             ║";
  1240.   PRINT "║  A20 Address Line          :               VCPI Version        :             ║";
  1241.   PRINT "║  High Memory Area          :                                                 ║";
  1242.   PRINT "║                                                                              ║";
  1243.   PRINT "║  '386 Extended Memory Manager :                                              ║";
  1244.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1245.   PRINT "║                        Press any key for next screen...                      ║";
  1246.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1247.   COLOR 7, 0
  1248.  
  1249. END SUB
  1250.  
  1251. SUB Mouse
  1252.  
  1253.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1254.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1255.   PRINT "║                                 Version 1.0                                  ║";
  1256.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1257.   PRINT "║                               │    Mouse    │                                ║";
  1258.   PRINT "║                               └─────────────┘                                ║";
  1259.   PRINT "║                                                                              ║";
  1260.   PRINT "║                                                                              ║";
  1261.   PRINT "║                                                                              ║";
  1262.   PRINT "║                       Mouse Installed   :                                    ║";
  1263.   PRINT "║                       Mouse Type        :                                    ║";
  1264.   PRINT "║                       Driver Version    :                                    ║";
  1265.   PRINT "║                       Number of Buttons :                                    ║";
  1266.   PRINT "║                       Mouse IRQ         :                                    ║";
  1267.   PRINT "║                                                                              ║";
  1268.   PRINT "║                                                                              ║";
  1269.   PRINT "║                                                                              ║";
  1270.   PRINT "║                                                                              ║";
  1271.   PRINT "║                                                                              ║";
  1272.   PRINT "║                                                                              ║";
  1273.   PRINT "║                                                                              ║";
  1274.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1275.   PRINT "║                        Press any key for next screen...                      ║";
  1276.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1277.   COLOR 7, 0
  1278.  
  1279. END SUB
  1280.  
  1281. SUB Network
  1282.  
  1283.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1284.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1285.   PRINT "║                                 Version 1.0                                  ║";
  1286.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1287.   PRINT "║                               │   Network   │                                ║";
  1288.   PRINT "║                               └─────────────┘                                ║";
  1289.   PRINT "║                                                                              ║";
  1290.   PRINT "║  IPX Installed      :                 Number of Connections Supported :      ║";
  1291.   PRINT "║                                       Number of Connections in Use    :      ║";
  1292.   PRINT "║  Netbios Installed  :                 Peak Connections Used           :      ║";
  1293.   PRINT "║                                       Maximum Connected Volumes       :      ║";
  1294.   PRINT "║  Shell Installed    :                                                        ║";
  1295.   PRINT "║  Shell Version      :                                                        ║";
  1296.   PRINT "║  Shell Located in   :                                                        ║";
  1297.   PRINT "║                                                                              ║";
  1298.   PRINT "║  Server Name        :                                                        ║";
  1299.   PRINT "║  Netware Version    :                                                        ║";
  1300.   PRINT "║                                                                              ║";
  1301.   PRINT "║  Login Date & Time  :                                                        ║";
  1302.   PRINT "║                                                                              ║";
  1303.   PRINT "║                                                                              ║";
  1304.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1305.   PRINT "║                        Press any key for next screen...                      ║";
  1306.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1307.   COLOR 7, 0
  1308.  
  1309. END SUB
  1310.  
  1311. SUB Shells
  1312.  
  1313.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1314.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1315.   PRINT "║                                 Version 1.0                                  ║";
  1316.   PRINT "╠════════════════════════╤═══════════════════════════╤═════════════════════════╣";
  1317.   PRINT "║                        │ TSR's, Drivers and Shells │                         ║";
  1318.   PRINT "║                        └───────────────────────────┘                         ║";
  1319.   PRINT "║                                                                              ║";
  1320.   PRINT "║  Windows Resident   :                        Smartdrv Installed     :        ║";
  1321.   PRINT "║  Windows Version    :                        PC-Cache Installed     :        ║";
  1322.   PRINT "║  Windows Mode       :                        PC-Kwik Installed      :        ║";
  1323.   PRINT "║                                              Ncache Installed       :        ║";
  1324.   PRINT "║  DESQview Resident  :                        HyperDisk Installed    :        ║";
  1325.   PRINT "║  DESQview Version   :                                                        ║";
  1326.   PRINT "║                                              DoubleSpace Installed  :        ║";
  1327.   PRINT "║  DOS Shell Resident :                        Spacemanager Installed :        ║";
  1328.   PRINT "║  CPTask Resident    :                        Stacker Installed      :        ║";
  1329.   PRINT "║  Taskmax Resident   :                                                        ║";
  1330.   PRINT "║                                              MSCDEX Installed       :        ║";
  1331.   PRINT "║                                              MSCDEX Version         :        ║";
  1332.   PRINT "║                                                                              ║";
  1333.   PRINT "║                                                                              ║";
  1334.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1335.   PRINT "║                        Press any key for next screen...                      ║";
  1336.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1337.   COLOR 7, 0
  1338.  
  1339. END SUB
  1340.  
  1341. SUB Video
  1342.  
  1343.   CLS : COLOR 14, 1: PRINT "╔══════════════════════════════════════════════════════════════════════════════╗";
  1344.   PRINT "║                            SYSINFO LIBRARY DEMO                              ║";
  1345.   PRINT "║                                 Version 1.0                                  ║";
  1346.   PRINT "╠═══════════════════════════════╤═════════════╤════════════════════════════════╣";
  1347.   PRINT "║                               │    Video    │                                ║";
  1348.   PRINT "║                               └─────────────┘                                ║";
  1349.   PRINT "║                                                                              ║";
  1350.   PRINT "║                                                                              ║";
  1351.   PRINT "║                                                                              ║";
  1352.   PRINT "║               Video Adapter Type     :                                       ║";
  1353.   PRINT "║               Display Type           :                                       ║";
  1354.   PRINT "║                                                                              ║";
  1355.   PRINT "║                                                                              ║";
  1356.   PRINT "║               VESA Support Installed :                                       ║";
  1357.   PRINT "║               VESA Version           :                                       ║";
  1358.   PRINT "║               Video Memory           :                                       ║";
  1359.   PRINT "║                                                                              ║";
  1360.   PRINT "║                                                                              ║";
  1361.   PRINT "║                                                                              ║";
  1362.   PRINT "║                                                                              ║";
  1363.   PRINT "║                                                                              ║";
  1364.   PRINT "╠══════════════════════════════════════════════════════════════════════════════╣";
  1365.   PRINT "║                        Press any key for next screen...                      ║";
  1366.   PRINT "╚══════════════════════════════════════════════════════════════════════════════╝";
  1367.   COLOR 7, 0
  1368.  
  1369. END SUB
  1370.  
  1371.