home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / dnalib7a.zip / SAVEAS.BAS < prev    next >
BASIC Source File  |  1994-05-14  |  21KB  |  609 lines

  1. DECLARE SUB LineEdit(Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,EditKey%,Attr%)
  2. DECLARE SUB Popwind(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%,Shadow%,Border%)
  3. DECLARE SUB Dialog(Choices$(),Title$,Seconds%,Mouse%,Cntr%,TopRow%,LeftColumn%,TxtColor%,Attr%,Shadow%,Border%)
  4. DECLARE SUB RestoreScreen(ScreenID$,TopRow%,LeftColumn%)
  5. DECLARE SUB SaveScreen(ScreenID$,TopRow%,LeftColumn%,BottomRow%,RightColumn%,Shadow%)
  6. DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
  7. DECLARE SUB Clicked(Rgt%,Lft%,Row%,Col%)
  8. DECLARE SUB HideCursor()
  9. DECLARE SUB ShowCursor()
  10. DECLARE FUNCTION LeftButtonReleased%()
  11.  
  12. SUB WriteToBox(ReturnedFile$,DefaultName$,Mouse%,Attr%,BarAttr%,ButtonAttr%,Shadow%,Border%)PUBLIC
  13.  
  14. $CODE SEG "DNASEG1"
  15.  
  16. DIM Directory$(1:100)
  17. DIM Message$(2)
  18. DirPointer% = 0
  19. ON LOCAL ERROR GOTO ErrorHandle
  20.  
  21. Allow$ = CHR$(24) + "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_^$~!{}()@'`*.\:"
  22. FileMask$ = "*.*"
  23.  
  24. CalcByte Attr%,FGround%,BGround%
  25. CalcByte ButtonAttr%,BtFG%,BtBG%
  26. CalcByte BarAttr%,BarFG%,BarBG%
  27.  
  28. IF Mouse% THEN HideCursor
  29.  
  30. SaveScreen DirScreen$,4,9,17,71,1
  31.  
  32. Popwind Title$,4,9,17,71,Attr%,Shadow%,Border%
  33. Popwind Title$,8,11,13,69,Attr%,0,1
  34.  
  35. IF Mouse% THEN
  36.   COLOR FGround%,BGround%
  37.   LOCATE 4,10,0
  38.   PRINT CHR$(91,254,93);
  39. END IF
  40.  
  41. Row% = 15:Col% = 13
  42.  
  43. COLOR BtFG%,BGround%
  44. LOCATE 6,11,0
  45. PRINT "File Name:";
  46.  
  47. COLOR BtFG%,BtBG%
  48. LOCATE Row%, Col%,0
  49. PRINT " Enter ";
  50. COLOR 0,BGround%
  51. LOCATE Row%, Col% + 7,0
  52. PRINT "▄";
  53. COLOR 0,BGround%
  54. LOCATE Row% + 1,Col% + 1,0
  55. PRINT "▀▀▀▀▀▀▀";
  56.  
  57. COLOR BtFG%,BtBG%
  58. LOCATE Row%,Col% + 11,0
  59. PRINT " Esc ";
  60. COLOR 0,BGround%
  61. LOCATE Row%,Col% + 16,0
  62. PRINT "▄";
  63. COLOR 0,BGround%
  64. LOCATE Row% + 1,Col% + 12,0
  65. PRINT "▀▀▀▀▀"
  66.  
  67. IF RIGHT$(CURDIR$,1) = "\" THEN  'make sure there is a back slash
  68.   Current$ = CURDIR$ + "*.*"
  69. ELSE
  70.   Current$ = CURDIR$ + CHR$(92) + "*.*"
  71. END IF
  72.  
  73. DO
  74.  
  75. IF DirCount% THEN          'empty out the array
  76.   FOR i% = 1 TO DirCount%
  77.     Directory$(i%) = ""
  78.   NEXT i%
  79. END IF
  80.  
  81. FOR i% = 1 TO LEN(Current$)      'get the path, need this when testing ATTRIB
  82.   Test$ = RIGHT$(Current$,i%)
  83.   IF LEFT$(Test$,1) = CHR$(92) THEN
  84.     Path$ = LEFT$(Current$,LEN(Current$) - (i% - 1))
  85.     EXIT FOR
  86.   END IF
  87. NEXT i%
  88.  
  89. i% = 1
  90.  
  91.  DirName$ = DIR$(Path$ + "*.*",16)   'get directorys and put them in an array
  92.  IF LEN(DirName$) THEN
  93.    x% = ATTRIB(Path$ + DirName$)
  94.    IF x% = 16 THEN
  95.      Directory$(i%) = DirName$
  96.    ELSE
  97.      DECR i%
  98.    END IF
  99.  END IF
  100.  
  101.    DO
  102.      DirName$ = DIR$
  103.      IF LEN(DirName$) THEN
  104.        x% = ATTRIB(Path$ + DirName$)
  105.        IF x% = 16 THEN
  106.          INCR i%
  107.          Directory$(i%) = DirName$
  108.        END IF
  109.      END IF
  110.    LOOP WHILE LEN(DirName$)
  111.  
  112. IF i% = 0 THEN i% = 1
  113.  
  114. IF LEN(Path$) > 3 THEN
  115.   IF LEN(Directory$(i%)) THEN
  116.     INCR i%
  117.     Directory$(i%) = ".."
  118.   ELSE
  119.     Directory$(i%) = ".."
  120.   END IF
  121. END IF
  122.  
  123. DirCount% = i%      'keep a count of directorys
  124.  
  125. ARRAY SORT Directory$(1) FOR DirCount%     'sort them A - Z
  126.  
  127. PasteIn$ = ""
  128. DirStart% = 1:DirFinish% = 16 'initialize these
  129.  
  130. DO
  131.   IF Mouse% THEN HideCursor
  132.  
  133.   GOSUB PrintDirs
  134.  
  135.   Current$ = Path$ + PasteIn$ + DefaultName$     'display the full path and file name
  136.   IF LEN(Current$) < 48 THEN       'of the selected item
  137.     Add% = 48 - LEN(Current$)
  138.     Current$ = Current$ + SPACE$(Add%)
  139.   END IF
  140.  
  141.   Current$ = UCASE$(Current$)    'force upper case
  142.  
  143.   Editkey% = 0  'this causes LineEdit to print and exit
  144.  
  145.   LineEdit Allow$,Current$,Mouse%,MouseRow%,MouseCol%,176,6,22,EditKey%,BarAttr%
  146.  
  147.   Kurrent$ = Current$
  148.   Kurrent$ = RTRIM$(Kurrent$)
  149.   FOR i% = 1 TO LEN(Kurrent$)      'get the path and file name
  150.     Test$ = RIGHT$(Kurrent$,i%)
  151.     IF LEFT$(Test$,1) = CHR$(92) THEN
  152.       FindPath$ = LEFT$(Kurrent$,LEN(Kurrent$) - (i% - 1))
  153.       EXIT FOR
  154.     END IF
  155.   NEXT i%
  156.   DefaultName$ = LTRIM$(Kurrent$,FindPath$)
  157.  
  158.   SELECT CASE Editkey%
  159.          CASE -255  'exit was with mouse
  160.            SELECT CASE MouseRow%
  161.                   CASE 4  'cancel box
  162.                     IF MouseCol% = 11 THEN
  163.                       Editkey% = 27
  164.                       ReturnedFile$ = ""
  165.                       EXIT,EXIT
  166.                     END IF
  167.                   CASE 6  'line edit
  168.                     IF MouseCol% > 21 AND MouseCol% < 70 THEN
  169.                       Editkey% = 13
  170.                       ReturnedFile$ = UCASE$(RTRIM$(Current$))
  171.                       EXIT,EXIT
  172.                     END IF
  173.                   CASE 9 TO 12  'Dirs display
  174.                     SELECT CASE MouseCol%
  175.                            CASE 14 TO 24
  176.                              IF DirStart% + MouseRow% - 9 <= DirCount% THEN
  177.                                DirPointer% = DirStart% + MouseRow% - 9
  178.                              ELSE
  179.                                DirPointer% = DirCount%
  180.                              END IF
  181.                              GOTO MouseJumpToRepaint
  182.                            CASE 28 TO 38
  183.                              IF DirStart% + 4 + MouseRow% - 9 <= DirCount% THEN
  184.                                DirPointer% = DirStart% + 4 + MouseRow% - 9
  185.                              ELSE
  186.                                DirPointer% = DirCount%
  187.                              END IF
  188.                              GOTO MouseJumpToRepaint
  189.                            CASE 42 TO 52
  190.                              IF DirStart% + 8 + MouseRow% - 9 <= DirCount% THEN
  191.                                DirPointer% = DirStart% + 8 + MouseRow% - 9
  192.                              ELSE
  193.                                DirPointer% = DirCount%
  194.                              END IF
  195.                              GOTO MouseJumpToRepaint
  196.                            CASE 56 TO 66
  197.                              IF DirStart% + 12 + MouseRow% - 9 <= DirCount% THEN
  198.                                DirPointer% = DirStart% + 12 + MouseRow% - 9
  199.                              ELSE
  200.                                DirPointer% = DirCount%
  201.                              END IF
  202.                              GOTO MouseJumpToRepaint
  203.                     END SELECT
  204.                   CASE 13  'scroll bar
  205.                     IF MouseCol% > 51 AND MouseCol% < 68 THEN
  206.                       GOTO MouseJumpToDirs
  207.                     END IF
  208.                   CASE 15  'Save and Esc buttons
  209.                     SELECT CASE MouseCol%
  210.                            CASE 13 TO 19  'Save
  211.                              ReturnedFile$ = UCASE$(RTRIM$(Current$))
  212.                              Editkey% = 13
  213.                              EXIT,EXIT
  214.                            CASE 24 TO 28  'Esc
  215.                              ReturnedFile$ = ""
  216.                              Editkey% = 27
  217.                              EXIT,EXIT
  218.                     END SELECT
  219.                   CASE ELSE 'return to loop
  220.            END SELECT
  221.          CASE 9
  222.          DO
  223.            MouseJumpToDirs:
  224.            IF OldDirPointer% THEN
  225.              DirPointer% = OldDirPointer%
  226.            ELSE
  227.              DirPointer% = 1
  228.            END IF
  229.          DO
  230.            MouseJumpToRepaint:
  231.            IF Mouse% THEN HideCursor
  232.            GOSUB PrintDirs
  233.            Editkey% = 255  'fall through LineEdit
  234.            LineEdit Allow$,Current$,Mouse%,MouseRow%,MouseCol%,176,6,22,EditKey%,Attr%
  235.  
  236.            WHILE NOT INSTAT
  237.              IF Mouse% THEN
  238.                ShowCursor
  239.                Rgt% = 0:Lft% = 0:MRow% = 0:MCol% = 0
  240.                Clicked Rgt%,Lft%,MRow%,MCol%
  241.                SELECT CASE MRow%
  242.                      CASE 4  'cancel box
  243.                        IF MCol% = 11 THEN
  244.                          IF LeftButtonReleased% THEN
  245.                            ReturnedFile$ = ""
  246.                            Editkey% = 27
  247.                            GOTO MouseJumpToExit
  248.                          END IF
  249.                        END IF
  250.                      CASE 6  'line edit
  251.                        IF MCol% > 21 AND MCol% < 70 THEN
  252.                          IF LeftButtonReleased% THEN
  253.                            Chose% = 9
  254.                            GOTO MouseJumpToKeyBoard
  255.                          END IF
  256.                        END IF
  257.                      CASE 9 TO 12  'Dirs display
  258.                        SELECT CASE MCol%
  259.                               CASE 14 TO 24
  260.                                 IF Lft% THEN
  261.                                   IF DirPointer% = DirStart% + MRow% - 9 THEN
  262.                                     IF LeftButtonReleased% THEN
  263.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  264.                                     END IF
  265.                                   ELSE
  266.                                     IF DirStart% + MRow% - 9 <= DirCount% THEN
  267.                                       DirPointer% = DirStart% + MRow% - 9
  268.                                       GOTO MouseJumpToRepaint
  269.                                     END IF
  270.                                   END IF
  271.                                 END IF
  272.                               CASE 28 TO 38
  273.                                 IF Lft% THEN
  274.                                   IF DirPointer% = DirStart% + 4 + MRow% - 9 THEN
  275.                                     IF LeftButtonReleased% THEN
  276.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  277.                                     END IF
  278.                                   ELSE
  279.                                     IF DirStart% + 4 + MRow% - 9 <= DirCount% THEN
  280.                                       DirPointer% = DirStart% + 4 + MRow% - 9
  281.                                       GOTO MouseJumpToRepaint
  282.                                     END IF
  283.                                   END IF
  284.                                 END IF
  285.                               CASE 42 TO 52
  286.                                 IF Lft% THEN
  287.                                   IF DirPointer% = DirStart% + 8 + MRow% - 9 THEN
  288.                                     IF LeftButtonReleased% THEN
  289.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  290.                                     END IF
  291.                                   ELSE
  292.                                     IF DirStart% + 8 + MRow% - 9 <= DirCount% THEN
  293.                                       DirPointer% = DirStart% + 8 + MRow% - 9
  294.                                       GOTO MouseJumpToRepaint
  295.                                     END IF
  296.                                   END IF
  297.                                 END IF
  298.                               CASE 56 TO 66
  299.                                 IF Lft% THEN
  300.                                   IF DirPointer% = DirStart% + 12 + MRow% - 9 THEN
  301.                                     IF LeftButtonReleased% THEN
  302.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  303.                                     END IF
  304.                                   ELSE
  305.                                     IF DirStart% + 12 + MRow% - 9 <= DirCount% THEN
  306.                                       DirPointer% = DirStart% + 12 + MRow% - 9
  307.                                       GOTO MouseJumpToRepaint
  308.                                     END IF
  309.                                   END IF
  310.                                 END IF
  311.                        END SELECT
  312.                      CASE 13  'scroll bar
  313.                        SELECT CASE MCol%
  314.                               CASE 51 TO 52
  315.                                 IF DirCount% < 17 THEN
  316.                                   IF LeftButtonReleased% THEN
  317.                                     Chose% = -72:GOTO MouseJumpToKeyBoard
  318.                                   END IF
  319.                                 ELSE
  320.                                   IF LeftButtonReleased% THEN
  321.                                     Chose% = -75:GOTO MouseJumpToKeyBoard
  322.                                   END IF
  323.                                 END IF
  324.                               CASE 67 TO 68
  325.                                 IF DirCount% < 17 THEN
  326.                                   IF LeftButtonReleased% THEN
  327.                                     Chose% = -80:GOTO MouseJumpToKeyBoard
  328.                                   END IF
  329.                                 ELSE
  330.                                   IF LeftButtonReleased% THEN
  331.                                     Chose% = -77:GOTO MouseJumpToKeyBoard
  332.                                   END IF
  333.                                 END IF
  334.                        END SELECT
  335.                      CASE 15  'Save and Esc buttons
  336.                        SELECT CASE MCol%
  337.                               CASE 13 TO 19  'Save
  338.                                 IF LeftButtonReleased% THEN
  339.                                   ReturnedFile$ = UCASE$(RTRIM$(Current$))
  340.                                   Editkey% = 13
  341.                                   GOTO MouseJumpToExit
  342.                                 END IF
  343.                               CASE 24 TO 28  'Esc
  344.                                 IF LeftButtonReleased% THEN
  345.                                   ReturnedFile$ = ""
  346.                                   Editkey% = 27
  347.                                   GOTO MouseJumpToExit
  348.                                 END IF
  349.                        END SELECT
  350.                END SELECT
  351.              END IF
  352.            WEND
  353.            Ky$ = INKEY$
  354.  
  355.            IF LEN(Ky$) = 1 THEN
  356.              Chose% = ASC(Ky$)
  357.            ELSE
  358.              Chose% = -ASC(RIGHT$(Ky$,1))
  359.            END IF
  360.  
  361.            MouseJumpToKeyBoard:
  362.  
  363.            SELECT CASE Chose%
  364.  
  365.                   CASE -71 ' home
  366.                     IF DirPointer% < 16 THEN
  367.                       DirPointer% = 1
  368.                     ELSE
  369.                       DirPointer% = 1
  370.                       DirStart% = 1
  371.                       DirFinish% = 16
  372.                     END IF
  373.                   CASE -72 ' up arrow
  374.                     IF DirPointer% > 1 THEN
  375.                       DECR DirPointer%
  376.                       IF DirPointer% < DirStart% THEN
  377.                         DECR DirStart%:DECR DirFinish%
  378.                       END IF
  379.                     END IF
  380.                   CASE -75 ' left arrow
  381.                     IF DirPointer% - 4 > 0 THEN
  382.                       DECR DirPointer%,4
  383.                       IF DirPointer% < DirStart% THEN
  384.                         IF DirStart% - 4 > 0 THEN
  385.                           DECR DirStart%,4:DECR DirFinish%,4
  386.                         ELSE
  387.                           DirStart% = 1:DirFinish% = 16
  388.                         END IF
  389.                       END IF
  390.                     ELSE
  391.                       IF DirCount% > 16 THEN
  392.                         DirStart% = 1:DirFinish% = 16
  393.                       END IF
  394.                     END IF
  395.                   CASE -77 ' right arrow
  396.                     IF DirPointer% + 4 <= DirCount% THEN
  397.                       INCR DirPointer%,4
  398.                       IF DirPointer% > DirFinish% THEN
  399.                         IF DirFinish% + 4 < DirCount% THEN
  400.                           INCR DirStart%,4:INCR DirFinish%,4
  401.                         ELSE
  402.                           DirFinish% = DirCount%
  403.                           DirStart% = DirFinish% - 15
  404.                         END IF
  405.                       END IF
  406.                     ELSE
  407.                       IF DirCount% > 16 THEN
  408.                         DirFinish% = DirCount%
  409.                         DirStart% = DirFinish% - 15
  410.                       END IF
  411.                     END IF
  412.                   CASE -79 ' end key
  413.                     IF DirCount% < 16 THEN
  414.                       DirPointer% = DirCount%
  415.                     ELSE
  416.                       DirPointer% = DirCount%
  417.                       DirStart% = DirCount% - 15
  418.                       DirFinish% = DirCount%
  419.                     END IF
  420.                   CASE -80 ' down arrow
  421.                     IF DirPointer% < DirCount% THEN
  422.                       INCR DirPointer%
  423.                       IF DirPointer% > DirFinish% THEN
  424.                         INCR DirStart%:INCR DirFinish%
  425.                       END IF
  426.                     END IF
  427.                   CASE 9   ' tab key
  428.                     OldDirPointer% = DirPointer%
  429.                     DirPointer% = 0
  430.                     EXIT,EXIT,EXIT
  431.                   CASE 13  ' enter
  432.                     IF Directory$(DirPointer%) = ".." THEN
  433.                       Path$ = RTRIM$(Path$,CHR$(92))
  434.                       FOR i% = 1 TO LEN(Path$)
  435.                         Test$ = RIGHT$(Path$,i%)
  436.                         IF LEFT$(Test$,1) = CHR$(92) THEN
  437.                           Current$ = LEFT$(Path$,LEN(Path$) - (i% - 1))
  438.                           OldDirPointer% = 0:DirPointer% = 0
  439.                           EXIT,EXIT,EXIT,EXIT
  440.                         END IF
  441.                       NEXT i%
  442.                     ELSE
  443.                       Current$ = Path$ + PasteIn$
  444.                       OldDirPointer% = 0:DirPointer% = 0
  445.                       EXIT,EXIT,EXIT
  446.                     END IF
  447.                   CASE 27  ' Esc
  448.                     Editkey% = 27
  449.                     EXIT,EXIT,EXIT,EXIT
  450.                   CASE ELSE
  451.                     BEEP
  452.             END SELECT
  453.          LOOP
  454.          LOOP
  455.          CASE 13
  456.            ReturnedFile$ = UCASE$(RTRIM$(Current$))
  457.            EXIT,EXIT
  458.          CASE 27
  459.            ReturnedFile$ = ""
  460.            EXIT,EXIT
  461.   END SELECT
  462.  
  463. LOOP
  464. LOOP
  465.  
  466. MouseJumpToExit:
  467.  
  468. Row% = 15:Col% = 13
  469.  
  470. SELECT CASE Editkey%
  471.  
  472.         CASE 13 'Ok
  473.           IF Mouse% THEN HideCursor
  474.           COLOR FGround%,BGround%
  475.           LOCATE Row%,Col%,0
  476.           PRINT " ";
  477.           LOCATE Row% + 1,Col% + 1,0
  478.           PRINT "       ";
  479.           COLOR BtFG%,BtBG%
  480.           LOCATE Row%,Col% + 1,0
  481.           PRINT " Enter "
  482.  
  483.         CASE 27 'Esc
  484.           IF Mouse% THEN HideCursor
  485.           COLOR FGround%,BGround%
  486.           LOCATE Row%,Col% + 11,0
  487.           PRINT " ";
  488.           LOCATE Row% + 1,Col% + 12,0
  489.           PRINT "      ";
  490.           COLOR BtFG%,BtBG%
  491.           LOCATE Row%,Col% + 12,0
  492.           PRINT " Esc "
  493.  
  494. END SELECT
  495.  
  496. IF Mouse% THEN ShowCursor
  497. DELAY .5
  498. IF Mouse% THEN HideCursor
  499. RestoreScreen DirScreen$,4,9
  500.  
  501. EXIT SUB
  502. '----------------------------------------------------------------------------
  503. PrintDirs:
  504. Row% = 9
  505. Col% = 14
  506.  
  507. FOR a% = DirStart% TO DirFinish%
  508.   IF a% = DirStart% + 4 OR a% = DirStart% + 8 OR a% = DirStart% + 12  THEN Row% = 9:INCR Col%,14
  509.     IF a% = DirPointer% THEN
  510.       COLOR BarFG%,BarBG%
  511.       LOCATE Row%,Col%,0
  512.       IF LEN(Directory$(a%)) THEN
  513.         z% = 92
  514.       ELSE
  515.         z% = 32
  516.       END IF
  517.       IF Directory$(a%) = ".." THEN
  518.         PasteIn$ = ""
  519.       ELSE
  520.         PasteIn$ = Directory$(a%) + CHR$(92)
  521.       END IF
  522.       PRINT SPACE$(1) + Directory$(a%) + CHR$(z%) + SPACE$(9 - LEN(Directory$(a%)));
  523.     ELSE
  524.       COLOR FGround%,BGround%
  525.       LOCATE Row%,Col%,0
  526.       IF LEN(Directory$(a%)) THEN
  527.         z% = 92
  528.       ELSE
  529.         z% = 32
  530.       END IF
  531.       PRINT SPACE$(1) + Directory$(a%) + CHR$(z%) + SPACE$(9 - LEN(Directory$(a%)));
  532.     END IF
  533.     INCR Row%
  534.   NEXT a%
  535.  
  536. DirScrollBar% = DirCount% \ 14
  537. IF DirScrollBar% < 1 THEN DirScrollBar% = 1
  538. Bar% = 0
  539. Col% = 52
  540.  
  541. IF DirPointer% THEN
  542.   ScrollDirPointer% = DirPointer%
  543. ELSEIF OldDirPointer% THEN
  544.   ScrollDirPointer% = OldDirPointer%
  545. ELSE
  546.   ScrollDirPointer% = 1
  547. END IF
  548.  
  549. COLOR FGround%,BGround%
  550. LOCATE 13,13,0
  551. PRINT "┤            ├";
  552. COLOR BtFG%,BGround%
  553. LOCATE 13,14,0
  554. PRINT ScrollDirPointer%; "of"; DirCount%;
  555.  
  556. FOR a% = DirStart% TO DirFinish%
  557.   COLOR FGround%,BGround%
  558.   LOCATE 13,Col%,0
  559.   IF a% = DirStart% THEN
  560.     PRINT CHR$(27);
  561.   ELSEIF a% = DirFinish% THEN
  562.     PRINT CHR$(26);
  563.   ELSE
  564.     IF Bar% =  0 THEN
  565.       c% = ScrollDirPointer%
  566.       FOR i% = 1 TO DirScrollBar%
  567.         b% = c% \ DirScrollBar%
  568.         IF a% = b% + DirStart% THEN
  569.           Bar% = 1
  570.           EXIT FOR
  571.         ELSE
  572.           INCR c%
  573.         END IF
  574.       NEXT i%
  575.       IF Bar%  THEN
  576.         PRINT CHR$(219);
  577.       ELSE
  578.         IF Bar% = 0 AND a% = DirFinish% - 1 THEN
  579.           PRINT CHR$(219);
  580.         ELSE
  581.           PRINT CHR$(176);
  582.         END IF
  583.       END IF
  584.     ELSE
  585.       PRINT CHR$(176);
  586.     END IF
  587.   END IF
  588.   INCR Col%
  589. NEXT a%
  590.  
  591. RETURN
  592. '----------------------------------------------------------------------------
  593. ErrorHandle:
  594.  
  595.   SELECT CASE ERR
  596.  
  597.     CASE 71
  598.       Message$(1) = "  Disk Drive not Ready  "
  599.     CASE 76
  600.       Message$(1) = "  Path or File not Found  "
  601.  
  602.   END SELECT
  603.  
  604.   Dialog Message$(),"Error",0,Mouse%,2,9,25,BarFG%,ButtonAttr%,Shadow%,Border%
  605.  
  606. RESUME NEXT
  607. '----------------------------------------------------------------------------
  608. END SUB
  609.