home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 253.img / DOS50HCT.ZIP / DOS50HCT.TD0 / DOSHCT / COMPAT.BAS < prev    next >
Encoding:
BASIC Source File  |  1990-05-25  |  19.6 KB  |  812 lines

  1. '---------------------------------------------------------------------------
  2. '
  3. '               ****    PRESS F5 TO BEGIN TEST   ****
  4. '
  5. '---------------------------------------------------------------------------
  6. ' Test:         COMPAT.BAS
  7. '
  8. '               Copyright (C) 1990, Microsoft Corporation
  9. '
  10. ' General:      Compatibility Testing
  11. '
  12. ' Specific:     SCREEN, WIDTH, CIRCLE, CHAIN
  13. '
  14. ' Secondary:    File I/O
  15. '
  16. ' Products:     QB4, QB4.5, BC6, QBASIC
  17. '
  18. '---------------------------------------------------------------------------
  19. ' Purpose:      Check the Video Display Adaptor
  20. '
  21. ' Scenarios:    1. Check the expected screen mode/width combinations for
  22. '                  an MDPA, CGA, EGA, VGA, MCGA, HERCULES, or OLIVETTI
  23. '                  video adaptors.
  24. '---------------------------------------------------------------------------
  25. ' Dependencies: User or command line switch.
  26. '
  27. ' Method:       QBASIC COMPAT
  28. '
  29. '---------------------------------------------------------------------------
  30. ' Revision History:
  31. '
  32. '       [ 0]    01-Sep-1988         Created by jimfu
  33. '       [ 1]    25-May-1990         Added Chain to Compat testing
  34. '---------------------------------------------------------------------------
  35.  
  36.    DECLARE SUB DetermineMonitor (KeyVal AS INTEGER)
  37.    DECLARE SUB ScreenTest (Mode AS INTEGER, TestWidth AS INTEGER, TestLines AS INTEGER, Pages AS INTEGER)
  38.    DECLARE SUB MPDA (MonInfo AS STRING)
  39.    DECLARE SUB CGA (MonInfo AS STRING)
  40.    DECLARE SUB EGA (MonInfo AS STRING)
  41.    DECLARE SUB VGA (MonInfo AS STRING)
  42.    DECLARE SUB MCGA (MonInfo AS STRING)
  43.    DECLARE SUB HERC (MonInfo AS STRING)
  44.    DECLARE SUB OLIV (MonInfo AS STRING)
  45.  
  46.    '
  47.    ' Declare and Initialize Variables
  48.    '
  49.  
  50.    DEFINT A-Z
  51.  
  52.    DIM KeyStroke AS STRING
  53.    DIM MonInfo AS STRING
  54.    DIM TestFile AS STRING
  55.  
  56.    DIM SHARED VideoType AS STRING
  57.    DIM SHARED TrapCounter
  58.    DIM SHARED Chart(30, 4)
  59.    DIM SHARED I, J, K, Index, Manual
  60.  
  61.    ON ERROR GOTO MainTrap
  62.  
  63.    '
  64.    ' Determine if this test should prompt the user
  65.    '
  66.  
  67.           
  68.    Manual = 0     'Tests will run without prompting the user
  69.  
  70.    Manual = 1     'Tests will prompt the user for input
  71.  
  72.    IF Manual THEN
  73.       CLS
  74.       PRINT "What type of Video Adaptor is in this machine?"
  75.       PRINT
  76.       PRINT "            1. MDPA"
  77.       PRINT "            2. CGA"
  78.       PRINT "            3. EGA"
  79.       PRINT "            4. VGA"
  80.       PRINT "            5. MCGA"
  81.       PRINT "            6. HERCULES"
  82.       PRINT
  83.       PRINT "Please enter the number for the correct display: ";
  84.  
  85.       WHILE KeyVal < 49 OR KeyVal > 55
  86.  
  87.          ' This will allow only the digits 1-7
  88.          ' ( 7 is the unlisted OLIVETTI mode)
  89.  
  90.          KeyStroke = INKEY$
  91.          IF KeyStroke <> "" THEN
  92.             KeyVal = ASC(KeyStroke)
  93.          END IF
  94.       WEND
  95.  
  96.    ELSE
  97.  
  98.       CALL DetermineMonitor(KeyVal)
  99.       PRINT KeyVal
  100.       IF Manual THEN SLEEP
  101.  
  102.    END IF
  103.  
  104.    SELECT CASE KeyVal
  105.        CASE 49
  106.            VideoType = "MDPA "
  107.            CALL MPDA(MonInfo)
  108.        CASE 50
  109.            VideoType = "CGA "
  110.            CALL CGA(MonInfo)
  111.        CASE 51
  112.           VideoType = "EGA "
  113.           CALL EGA(MonInfo)
  114.        CASE 52
  115.           VideoType = "VGA "
  116.           CALL VGA(MonInfo)
  117.        CASE 53
  118.           VideoType = "MCGA "
  119.           CALL MCGA(MonInfo)
  120.        CASE 54
  121.           VideoType = "HERCULES "
  122.           CALL HERC(MonInfo)
  123.        CASE 55
  124.           VideoType = "OLIVETTI "
  125.           CALL OLIV(MonInfo)
  126.        CASE ELSE
  127.           BEEP
  128.    END SELECT
  129.  
  130.    SCREEN 0, , 0, 0                      ' Reset video display
  131.  
  132.    IF VideoType = "VGA " THEN            ' VGA has too many combinations
  133.       WIDTH 80, 43                       ' to fit on a single 25 line screen
  134.    ELSE
  135.       WIDTH 80, 25
  136.    END IF
  137.  
  138.    ' Report the results of the screen tests
  139.  
  140.    CLS
  141.    OPEN "RESULTS.TXT" FOR OUTPUT AS #1
  142.    PRINT #1, "Test: "; VideoType; MonInfo
  143.    PRINT #1, "Mode    Rows/Cols     Pages"
  144.    PRINT "Test: "; VideoType; MonInfo
  145.    PRINT "Mode    Rows/Cols     Pages"
  146.    PRINT
  147.    PRINT #1, " "
  148.  
  149.    ' Check to see if the line should be printed. The index was set if
  150.    ' the test was run for the mode/width combination
  151.  
  152.    FOR I = 1 TO 30
  153.       IF Chart(I, 0) = 1 THEN
  154.          PRINT USING " ##      ## X ##       ## "; Chart(I, 1); Chart(I, 2); Chart(I, 3); Chart(I, 4)
  155.          PRINT #1, USING " ##      ## X ##       ## "; Chart(I, 1); Chart(I, 2); Chart(I, 3); Chart(I, 4)
  156.       END IF
  157.    NEXT I
  158.  
  159.    PRINT
  160.    PRINT "Check the documentation to ensure that these results are correct."
  161.    PRINT
  162.    PRINT "Press any key to continue"
  163.    IF Manual THEN SLEEP
  164.  
  165.    ' Test file I/O
  166.  
  167.    CLS
  168.    ON ERROR GOTO DriveTrap
  169.    SCREEN 0, , 0, 0
  170.    PRINT "The test will now examine the number of fixed drives connected."
  171.    PRINT
  172.    PRINT
  173.    PRINT
  174.    PRINT "     NOTE: You MAY see the DOS message"
  175.    PRINT
  176.    PRINT "          Insert diskette for drive X: and strike"
  177.    PRINT "          any key when ready"
  178.    PRINT
  179.    PRINT "     If this is the case, simply follow the DOS prompt given."
  180.    PRINT
  181.    PRINT
  182.    PRINT
  183.    PRINT
  184.    PRINT
  185.    PRINT
  186.    PRINT "             PRESS ANY KEY TO BEGIN DRIVE TESTING"
  187.    IF Manual THEN SLEEP
  188.  
  189.    CLS
  190.    PRINT
  191.    PRINT #1, " "
  192.    PRINT #1, "The following fixed drives were found in this machine:"
  193.    PRINT #1, "    (Note: This includes network drives)"
  194.    PRINT
  195.    PRINT "The following fixed drives were found in this machine:"
  196.    PRINT "    (Note: This includes network drives)"
  197.  
  198.    Flag = 0
  199.    FOR I = 67 TO 90
  200.       TestFile = CHR$(I) + ":\NoFile.XXX"
  201. 1     OPEN TestFile FOR INPUT AS #2
  202.       Flag = 1
  203.       PRINT #1, CHR$(I)
  204.       PRINT "               "; CHR$(I); "                       "
  205. 2     CLOSE #2
  206.    NEXT I
  207.    IF Flag = 0 THEN
  208.       PRINT "     None"
  209.       PRINT #1, "None"
  210.    END IF
  211.  
  212.    ON ERROR GOTO MainTrap
  213. 99 CHAIN "COMPAT1.BAS"
  214.  
  215. DriveTrap:
  216.  
  217.    IF ERR = 71 OR ERR = 53 THEN
  218.       RESUME NEXT
  219.    END IF
  220.  
  221.    IF ERR = 76 AND ERL = 1 THEN
  222.       RESUME 2
  223.    END IF
  224.  
  225.    IF ERL = 1 THEN
  226.       PRINT "Unexpected"; ERR; "in"; ERL
  227.       PRINT "looking for TestFile"
  228.    END IF
  229.  
  230. MainTrap:
  231.    SCREEN 0, , 0, 0
  232.    CLS
  233.    PRINT "An unexpected error "; ERR; "was found in"; ERL
  234.    PRINT
  235.    PRINT "PLEASE make note of this error and report it to Microsoft."
  236.    PRINT
  237.    PRINT "            PRESS ANY KEY TO CONCLUDE TEST"
  238.    IF Manual THEN SLEEP
  239.    SYSTEM
  240.  
  241.  
  242. ScreenTrap:
  243.    TrapCounter = TrapCounter + 1
  244.    RESUME NEXT
  245.    END
  246.  
  247. SUB CGA (MonInfo AS STRING)
  248.    FOR Index = 1 TO 4
  249.       SELECT CASE Index
  250.          CASE 1
  251.             Mode = 0
  252.             TestWidth = 40
  253.             TestLines = 25
  254.          CASE 2
  255.             Mode = 0
  256.             TestWidth = 80
  257.             TestLines = 25
  258.          CASE 3
  259.             Mode = 1
  260.             TestWidth = 40
  261.             TestLines = 25
  262.          CASE 4
  263.             Mode = 2
  264.             TestWidth = 80
  265.             TestLines = 25
  266.       END SELECT
  267.       CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  268.  
  269.       IF TrapCounter = 0 THEN
  270.          Chart(Index, 0) = 1
  271.          Chart(Index, 1) = Mode
  272.          Chart(Index, 2) = TestWidth
  273.          Chart(Index, 3) = TestLines
  274.          Chart(Index, 4) = Pages
  275.       END IF
  276.    NEXT Index
  277. END SUB
  278.  
  279. SUB DetermineMonitor (KeyVal AS INTEGER)
  280.    ON ERROR GOTO ScreenTrap
  281.   
  282.    ' Is it a HERCULES?
  283.  
  284.    TrapCounter = 0
  285.    SCREEN 3
  286.    IF TrapCounter = 0 THEN
  287.       KeyVal = 54
  288.       EXIT SUB
  289.    END IF
  290.  
  291.    ' Is it a OLIVETTI?
  292.  
  293.    TrapCounter = 0
  294.    SCREEN 4
  295.    IF TrapCounter = 0 THEN
  296.       KeyVal = 55
  297.       EXIT SUB
  298.    END IF
  299.  
  300.    ' Is it a VGA?
  301.   
  302.    TrapCounter = 0
  303.    SCREEN 12
  304.    IF TrapCounter = 0 THEN
  305.       KeyVal = 52
  306.       EXIT SUB
  307.    END IF
  308.   
  309.    ' Is it a MCGA?
  310.   
  311.    TrapCounter = 0
  312.    SCREEN 11
  313.    IF TrapCounter = 0 THEN
  314.       KeyVal = 53
  315.       EXIT SUB
  316.    END IF
  317.   
  318.    ' Is it a EGA?
  319.   
  320.    TrapCounter = 0
  321.    SCREEN 9
  322.    IF TrapCounter = 0 THEN
  323.       KeyVal = 51
  324.       EXIT SUB
  325.    END IF
  326.   
  327.    ' Is it a CGA?
  328.  
  329.    TrapCounter = 0
  330.    SCREEN 2
  331.    IF TrapCounter = 0 THEN
  332.       KeyVal = 50
  333.       EXIT SUB
  334.    END IF
  335.  
  336.    ' Must be an MDPA?
  337.  
  338.    KeyVal = 49
  339.  
  340. END SUB
  341.  
  342. SUB EGA (MonInfo AS STRING)
  343.    ON ERROR GOTO ScreenTrap
  344.    TrapCounter = 0
  345.    MonInfo = "Monochrome Monitor"
  346.    SCREEN 10
  347.    IF TrapCounter = 1 THEN
  348.       MonInfo = "Enhanced Color Monitor"
  349.       SCREEN 9
  350.       IF TrapCounter = 2 THEN
  351.          MonInfo = "Color Monitor"
  352.       END IF
  353.    END IF
  354.  
  355.    TrapCounter = 0
  356.    IF MonInfo = "Monochrome Monitor" THEN
  357.       FOR Index = 1 TO 4
  358.          SELECT CASE Index
  359.             CASE 1
  360.                Mode = 0
  361.                TestWidth = 80
  362.                TestLines = 25
  363.             CASE 2
  364.                Mode = 0
  365.                TestWidth = 80
  366.                TestLines = 43
  367.             CASE 3
  368.                Mode = 10
  369.                TestWidth = 80
  370.                TestLines = 25
  371.             CASE 4
  372.                Mode = 10
  373.                TestWidth = 80
  374.                TestLines = 43
  375.          END SELECT
  376.          CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  377.  
  378.          IF TrapCounter = 0 THEN
  379.             Chart(Index, 0) = 1
  380.             Chart(Index, 1) = Mode
  381.             Chart(Index, 2) = TestWidth
  382.             Chart(Index, 3) = TestLines
  383.             Chart(Index, 4) = Pages
  384.          END IF
  385.       NEXT Index
  386.    END IF
  387.  
  388.    IF MonInfo = "Enhanced Color Monitor" THEN
  389.       FOR Index = 1 TO 10
  390.          SELECT CASE Index
  391.             CASE 1
  392.                Mode = 0
  393.                TestWidth = 40
  394.                TestLines = 25
  395.             CASE 2
  396.                Mode = 0
  397.                TestWidth = 40
  398.                TestLines = 43
  399.             CASE 3
  400.                Mode = 0
  401.                TestWidth = 80
  402.                TestLines = 25
  403.             CASE 4
  404.                Mode = 0
  405.                TestWidth = 80
  406.                TestLines = 43
  407.             CASE 5
  408.                Mode = 1
  409.                TestWidth = 40
  410.                TestLines = 25
  411.             CASE 6
  412.                Mode = 2
  413.                TestWidth = 80
  414.                TestLines = 25
  415.             CASE 7
  416.                Mode = 7
  417.                TestWidth = 40
  418.                TestLines = 25
  419.             CASE 8
  420.                Mode = 8
  421.                TestWidth = 80
  422.                TestLines = 25
  423.             CASE 9
  424.                Mode = 9
  425.                TestWidth = 80
  426.                TestLines = 25
  427.             CASE 10
  428.                Mode = 9
  429.                TestWidth = 80
  430.                TestLines = 43
  431.          END SELECT
  432.          CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  433.  
  434.          IF TrapCounter = 0 THEN
  435.             Chart(Index, 0) = 1
  436.             Chart(Index, 1) = Mode
  437.             Chart(Index, 2) = TestWidth
  438.             Chart(Index, 3) = TestLines
  439.             Chart(Index, 4) = Pages
  440.            END IF
  441.       NEXT Index
  442.    END IF
  443.       
  444.    IF MonInfo = "Color Monitor" THEN
  445.      
  446.       FOR Index = 1 TO 7
  447.          SELECT CASE Index
  448.             CASE 1
  449.                Mode = 0
  450.                TestWidth = 40
  451.                TestLines = 25
  452.             CASE 2
  453.                Mode = 0
  454.                TestWidth = 80
  455.                TestLines = 25
  456.             CASE 3
  457.                Mode = 0
  458.                TestWidth = 80
  459.                TestLines = 25
  460.             CASE 4
  461.                Mode = 1
  462.                TestWidth = 40
  463.                TestLines = 25
  464.             CASE 5
  465.                Mode = 2
  466.                TestWidth = 80
  467.                TestLines = 25
  468.             CASE 6
  469.                Mode = 7
  470.                TestWidth = 40
  471.                TestLines = 25
  472.             CASE 7
  473.                Mode = 8
  474.                TestWidth = 80
  475.                TestLines = 25
  476.          END SELECT
  477.          CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  478.    
  479.          IF TrapCounter = 0 THEN
  480.             Chart(Index, 0) = 1
  481.             Chart(Index, 1) = Mode
  482.             Chart(Index, 2) = TestWidth
  483.             Chart(Index, 3) = TestLines
  484.             Chart(Index, 4) = Pages
  485.          END IF
  486.       NEXT Index
  487.    END IF
  488. END SUB
  489.  
  490. SUB HERC (MonInfo AS STRING)
  491.  
  492.    MonInfo = "(Assumes Monochrome Monitor)"
  493.    FOR Index = 1 TO 2
  494.       SELECT CASE Index
  495.          CASE 1
  496.             Mode = 0
  497.             TestWidth = 80
  498.             TestLines = 25
  499.          CASE 2
  500.             Mode = 3
  501.             TestWidth = 80
  502.             TestLines = 25
  503.       END SELECT
  504.       CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  505.  
  506.       IF TrapCounter = 0 THEN
  507.          Chart(Index, 0) = 1
  508.          Chart(Index, 1) = Mode
  509.          Chart(Index, 2) = TestWidth
  510.          Chart(Index, 3) = TestLines
  511.          Chart(Index, 4) = Pages
  512.       END IF
  513.    NEXT Index
  514. END SUB
  515.  
  516. SUB MCGA (MonInfo AS STRING)
  517.    FOR Index = 1 TO 7
  518.       SELECT CASE Index
  519.          CASE 1
  520.             Mode = 0
  521.             TestWidth = 40
  522.             TestLines = 25
  523.          CASE 2
  524.             Mode = 0
  525.             TestWidth = 80
  526.             TestLines = 25
  527.          CASE 3
  528.             Mode = 1
  529.             TestWidth = 40
  530.             TestLines = 25
  531.          CASE 4
  532.             Mode = 2
  533.             TestWidth = 80
  534.             TestLines = 25
  535.          CASE 5
  536.             Mode = 11
  537.             TestWidth = 80
  538.             TestLines = 30
  539.          CASE 6
  540.             Mode = 11
  541.             TestWidth = 80
  542.             TestLines = 60
  543.          CASE 7
  544.             Mode = 13
  545.             TestWidth = 40
  546.             TestLines = 25
  547.       END SELECT
  548.       CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  549.  
  550.       IF TrapCounter = 0 THEN
  551.          Chart(Index, 0) = 1
  552.          Chart(Index, 1) = Mode
  553.          Chart(Index, 2) = TestWidth
  554.          Chart(Index, 3) = TestLines
  555.          Chart(Index, 4) = Pages
  556.       END IF
  557.    NEXT Index
  558. END SUB
  559.  
  560. SUB MPDA (MonInfo AS STRING)
  561.    Mode = 0
  562.    TestWidth = 80
  563.    TestLines = 25
  564.    Index = 1
  565.    CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  566.  
  567.    IF TrapCounter = 0 THEN
  568.       Chart(Index, 0) = 1
  569.       Chart(Index, 1) = Mode
  570.       Chart(Index, 2) = TestWidth
  571.       Chart(Index, 3) = TestLines
  572.       Chart(Index, 4) = Pages
  573.    END IF
  574. END SUB
  575.  
  576. SUB OLIV (MonInfo AS STRING)
  577.    MonInfo = "(Assumes Color Monitor)"
  578.    FOR Index = 1 TO 10
  579.       SELECT CASE Index
  580.          CASE 1
  581.             Mode = 0
  582.             TestWidth = 40
  583.             TestLines = 25
  584.          CASE 2
  585.             Mode = 0
  586.             TestWidth = 80
  587.             TestLines = 25
  588.          CASE 3
  589.             Mode = 0
  590.             TestWidth = 80
  591.             TestLines = 43
  592.          CASE 4
  593.             Mode = 1
  594.             TestWidth = 40
  595.             TestLines = 25
  596.          CASE 5
  597.             Mode = 2
  598.             TestWidth = 80
  599.             TestLines = 25
  600.          CASE 6
  601.             Mode = 4
  602.             TestWidth = 80
  603.             TestLines = 25
  604.          CASE 7
  605.             Mode = 7
  606.             TestWidth = 40
  607.             TestLines = 25
  608.          CASE 8
  609.             Mode = 8
  610.             TestWidth = 80
  611.             TestLines = 25
  612.          CASE 9
  613.             Mode = 9
  614.             TestWidth = 80
  615.             TestLines = 25
  616.          CASE 10
  617.             Mode = 9
  618.             TestWidth = 80
  619.             TestLines = 43
  620.       END SELECT
  621.       CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  622.  
  623.       IF TrapCounter = 0 THEN
  624.          Chart(Index, 0) = 1
  625.          Chart(Index, 1) = Mode
  626.          Chart(Index, 2) = TestWidth
  627.          Chart(Index, 3) = TestLines
  628.          Chart(Index, 4) = Pages
  629.       END IF
  630.    NEXT Index
  631. END SUB
  632.  
  633. SUB ScreenTest (Mode, TestWidth, TestLines, Pages)
  634.    
  635.    ON ERROR GOTO ScreenTrap
  636.  
  637.    'Initialize Variables
  638.  
  639.    TrapCounter = 0
  640.    Pages = 0
  641.  
  642.    'Check Active Pages
  643.  
  644.    FOR I = 0 TO 10
  645.       Temp = TrapCounter
  646.       SCREEN Mode, , I
  647.       WIDTH TestWidth, TestLines
  648.       CLS
  649.  
  650.       ' Increment the number of pages if no new errors
  651.  
  652.       IF Temp = TrapCounter THEN
  653.          Pages = Pages + 1
  654.       END IF
  655.  
  656.       ' If in a graphics screen, do a graphics routine
  657.  
  658.       IF Mode <> 0 AND Temp = TrapCounter THEN
  659.          CIRCLE (150, 100), 100
  660.       END IF
  661.  
  662.       ' If no new errors, draw a border around the screen
  663.  
  664.       IF TrapCounter = 0 THEN
  665.          FOR J = 1 TO TestWidth
  666.             LOCATE 1, J
  667.             PRINT USING "#"; I;
  668.             LOCATE TestLines, J
  669.             PRINT USING "#"; I;
  670.          NEXT J
  671.          FOR J = 1 TO TestLines
  672.             LOCATE J, 1
  673.             PRINT USING "#"; I;
  674.             LOCATE J, TestWidth
  675.             PRINT USING "#"; I;
  676.          NEXT J
  677.       END IF
  678.  
  679.       ' If no errors, print current screen info
  680.  
  681.       IF TrapCounter = 0 THEN
  682.          LOCATE TestLines \ 2 - 3, 5
  683.          PRINT "Mode   Row    Col    Page"
  684.          LOCATE , 5
  685.          PRINT USING "##     ##     ##      ##"; Mode; TestLines; TestWidth; Pages - 1
  686.          LOCATE TestLines \ 2, 5
  687.          PRINT "Check that the screen is"
  688.          LOCATE TestLines \ 2 + 1, 5
  689.          PRINT "bordered with numbers"
  690.          IF Mode <> 0 THEN
  691.             LOCATE TestLines \ 2 + 2, 5
  692.             PRINT "and there is a circle"
  693.          END IF
  694.          LOCATE TestLines \ 2 + 5, 5
  695.  
  696.          ' Have the user verify the screen
  697.  
  698.          PRINT "Press any key to continue"
  699.          IF Manual THEN SLEEP
  700.       END IF
  701.    NEXT I
  702.  
  703.    TrapCounter = 0
  704.  
  705.    ' Verify the Visual Pages
  706.  
  707.    FOR I = 0 TO Pages - 1
  708.       SCREEN Mode, , , I
  709.    NEXT I
  710. END SUB
  711.  
  712. SUB VGA (MonInfo AS STRING)
  713.    FOR Index = 1 TO 21
  714.       SELECT CASE Index
  715.          CASE 1
  716.             Mode = 0
  717.             TestWidth = 40
  718.             TestLines = 25
  719.          CASE 2
  720.             Mode = 0
  721.             TestWidth = 40
  722.             TestLines = 43
  723.          CASE 3
  724.             Mode = 0
  725.             TestWidth = 40
  726.             TestLines = 50
  727.          CASE 4
  728.             Mode = 0
  729.             TestWidth = 80
  730.             TestLines = 25
  731.          CASE 5
  732.             Mode = 0
  733.             TestWidth = 80
  734.             TestLines = 43
  735.          CASE 6
  736.             Mode = 0
  737.             TestWidth = 80
  738.             TestLines = 43
  739.          CASE 7
  740.             Mode = 0
  741.             TestWidth = 80
  742.             TestLines = 50
  743.          CASE 8
  744.             Mode = 0
  745.             TestWidth = 80
  746.             TestLines = 50
  747.          CASE 9
  748.             Mode = 1
  749.             TestWidth = 40
  750.             TestLines = 25
  751.          CASE 10
  752.             Mode = 2
  753.             TestWidth = 80
  754.             TestLines = 25
  755.          CASE 11
  756.             Mode = 7
  757.             TestWidth = 40
  758.             TestLines = 25
  759.          CASE 12
  760.             Mode = 8
  761.             TestWidth = 80
  762.             TestLines = 25
  763.          CASE 13
  764.             Mode = 9
  765.             TestWidth = 80
  766.             TestLines = 25
  767.          CASE 14
  768.             Mode = 9
  769.             TestWidth = 80
  770.             TestLines = 43
  771.          CASE 15
  772.             Mode = 10
  773.             TestWidth = 80
  774.             TestLines = 25
  775.          CASE 16
  776.             Mode = 10
  777.             TestWidth = 80
  778.             TestLines = 43
  779.          CASE 17
  780.             Mode = 11
  781.             TestWidth = 80
  782.             TestLines = 30
  783.          CASE 18
  784.             Mode = 11
  785.             TestWidth = 80
  786.             TestLines = 60
  787.          CASE 19
  788.             Mode = 12
  789.             TestWidth = 80
  790.             TestLines = 30
  791.          CASE 20
  792.             Mode = 12
  793.             TestWidth = 80
  794.             TestLines = 60
  795.          CASE 21
  796.             Mode = 13
  797.             TestWidth = 40
  798.             TestLines = 25
  799.       END SELECT
  800.       CALL ScreenTest(Mode, TestWidth, TestLines, Pages)
  801.  
  802.       IF TrapCounter = 0 THEN
  803.          Chart(Index, 0) = 1
  804.          Chart(Index, 1) = Mode
  805.          Chart(Index, 2) = TestWidth
  806.          Chart(Index, 3) = TestLines
  807.          Chart(Index, 4) = Pages
  808.       END IF
  809.    NEXT Index
  810. END SUB
  811.  
  812.