home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9101 / diskarch / dskbrows.prg < prev    next >
Encoding:
Text File  |  1991-10-06  |  16.0 KB  |  525 lines

  1. * Programm.: Zur Verwaltung der Disketteninhalte 1.0
  2. * Author...: Volker Vogeley
  3. * Datum....: 23.04.1991
  4. * Notiz....: Copyright (c) 1991 Volker Vogeley & DMV Verlag
  5. * Bemerkung: Alle Rechte vorbehalten
  6. * Reserved.:
  7. * Datei....: DSKBROWS.PRG
  8. * Programmiersprache: Clipper 5.0 / Clipper S'87
  9. *
  10. *
  11. ******************************************
  12. **  Einstellungen der Programmumgebung  **
  13. ******************************************
  14. *ALTD(1)
  15. SET DATE GERMAN
  16. SET TALK OFF
  17. SET SCOREBOARD OFF
  18. SET DELETED ON
  19. SET ESCAPE OFF
  20. SET ECHO OFF
  21. SET INTENSITY ON
  22. SET CURSOR ON
  23. CLOSE
  24. **********************************************************
  25. ** Variablen Definition für die Zuweisung der Farben für *
  26. ** das gesammte Programm                                 *
  27. **********************************************************
  28. IF ISCOLOR() && Wenn Farbkarte gefunden folgende Farben
  29.    farbe1 = "w+/gb"
  30.    farbe2 = "b/gb"
  31.    farbe3 = "gb/b+,gr+/n,n/w,,"
  32.    farbe4 = "r/gb"
  33.    farbe5 = "w+/b,n/w+"
  34.    farbe6 = "w+/b+"
  35.    farbe7 = "GR+/b+"
  36.    RAHME_ein=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+;
  37.    chr(205)+chr(200)+chr(186)+"▓"
  38. ELSE  && Falls Monochrome Darstellung dann diese Farben
  39.    farbe1 ="w+/n"
  40.    farbe2 ="w/I"
  41.    farbe3 ="w/n,i/w+"
  42.    farbe4 ="w/n"
  43.    farbe5 ="w+/n"
  44.    farbe6 ="w+/i"
  45.    farbe7 ="W/n"
  46.    RAHME_ein=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+;
  47.    chr(205)+chr(200)+chr(186)+"▓"
  48. ENDIF
  49.   BOX1 = "┌─┐│┘─└│ "
  50.   BOX3 = "░░░░░░░░░"
  51.   BOX2 = "╔═╗║╝═╚║ "
  52. ******************************************************************
  53. **  Festlegung der Druckercodes der einzelnen Schriftarten      **
  54. **  für den späteren Einsatz ist geplant, diese Werte aus einer **
  55. **  kleinen Datenbank zu holen                                  **
  56. **  Druckercodes wurden für einen NEC oder EPSON 24 Nadel-      **
  57. **  drucker angepasst.                                          **
  58. ******************************************************************
  59. BREITEIN=CHR(27)+CHR(87)+"1"
  60. BREITAUS=CHR(27)+CHR(87)+"0"
  61. SCHMALEIN=CHR(15)
  62. SCHMALAUS=CHR(18)
  63. FETTEIN=CHR(27)+CHR(69)
  64. FETTAUS=CHR(27)+CHR(70)
  65. LQEIN=CHR(27)+"x"+"1"
  66. LQAUS=CHR(27)+"x"+"0"
  67. PICA=CHR(27)+CHR(80)
  68. ELITE=CHR(27)+CHR(77)
  69. HOCHGEIN=CHR(27)+CHR(83)+"0"
  70. HOCHGAUS=CHR(27)+CHR(84)
  71. TIEFGEIN=CHR(27)+CHR(83)+"1"
  72. TIEFGAUS=CHR(27)+CHR(84)
  73. *************************************************************
  74. * Variablen für das gesamte Programm festlegen             **
  75. * Farbvariablen , die im gesammten Programm genutzt werden **
  76. *************************************************************
  77. PUBLIC FARBE1, FARBE2, FARBE3, FARBE4, FARBE5, FARBE6, FARBE7
  78. PUBLIC RAHME_EIN, BOX1, BOX2
  79. *************************************************************
  80. ** Druckervariablen, die im gesammten Programm zur Steuer- **
  81. ** ung der Druckausgabe verwendet werden.                  **
  82. *************************************************************
  83. Public  TIEFGEIN,  TIEFGAUS,  HOCHGEIN,  HOCHGAUS, PICA, ELITE, LQEIN
  84. PUBLIC LQAUS, BREITEIN, BREITAUS, SCHAMLEIN, SCHMALAUS, FETTEIN, FETTAUS
  85. PUBLIC NAME, STRASSE, ORT, TEL
  86. *************************************************************
  87. ****                                                     ****
  88. ****                    HAUPTPROGRAMM                    ****
  89. ****                                                     ****
  90. *************************************************************
  91. IF FILE("CATALOG.DBF")  && Wenn Datei vorhanden
  92.    USE CATALOG.DBF    && dann öffnen
  93. ELSE  && ansonsten bitte Datenbank anlegen
  94.    CREATE TATALOG
  95.    USE TATALOG
  96.    APPEND BLANK
  97.    REPLACE field_name WITH "DIR",field_type WITH "C", field_len WITH 67
  98.    APPEND BLANK
  99.    REPLACE field_name WITH "NAME",field_type WITH "C", field_len WITH 8
  100.    APPEND BLANK
  101.    REPLACE field_name WITH "EXT",field_type WITH "C", field_len WITH 4
  102.    APPEND BLANK
  103.    REPLACE field_name WITH "SIZE",field_type WITH "N", field_len WITH 8
  104.    APPEND BLANK
  105.    REPLACE field_name WITH "DATE",field_type WITH "C", field_len WITH 10
  106.    APPEND BLANK
  107.    REPLACE field_name WITH "TIME",field_type WITH "C", field_len WITH 8
  108.    APPEND BLANK
  109.    REPLACE field_name WITH "ATTR",field_type WITH "C", field_len WITH 5
  110.    APPEND BLANK
  111.    REPLACE field_name WITH "VOLUME",field_type WITH "C", field_len WITH 12
  112.    GO TOP
  113.    CLEAR
  114.    USE
  115.    CREATE CATALOG FROM TATALOG
  116.    ERASE IND1.NTX
  117.    ERASE IND2.NTX
  118.    ERASE TATALOG.DBF
  119.    USE CATALOG
  120. ENDIF
  121. IF FILE("IND1.NTX") .AND. FILE("IND2.NTX")
  122.    USE CATALOG.DBF INDEX IND1,IND2
  123. ELSE
  124.    INDEX ON Name TO IND1
  125.    INDEX ON Ext TO IND2
  126.    USE CATALOG.DBF INDEX IND1,IND2
  127. ENDIF
  128. SET CONSOLE ON
  129. CLEAR
  130. ausw = " "
  131. DO WHILE .T.
  132.    zeit=time()
  133.    tag=date()
  134.    SET COLOR  TO (farbe7)   && Menueleiste darstellen
  135.    @ 1,0
  136.    @ 22,0
  137.    text=" ****  Disketten-Verwaltung 1.0  ****   "+;
  138.    " (C) 1991 by V. Vogeley & DMV Verlag "
  139.    SET COLOR to (farbe5)
  140.     DO zent WITH 1,text
  141.    SET COLOR  TO (farbe4)
  142.    DO rahmen
  143.    SET COLOR TO (farbe3)
  144. * Hauptmenue
  145.   SET WRAP ON
  146.   SET MESSAGE TO 24 CENTER
  147.   @ 22,2  PROMPT "Einlesen"    message+;
  148.   "Einlesen einer neuen Diskette "
  149.   @ 22,17 PROMPT "Bearbeiten " message+;
  150.   "Editieren der erfassten Diskette "
  151.   @ 22,33 PROMPT "Information"      message+;
  152.   "Information über die Datenbestände von CATALOG.DBF"
  153.   @ 22,49 PROMPT "Drucken"     message+;
  154.   "Drucker Ausgabe von Listen Etiketten etc."
  155.   @ 22,63 PROMPT "Index"        message+;
  156.   "Indexwechsel der Datenbank (VorsortieRUNg)"
  157.   @ 22,72 PROMPT "Ende"        message+;
  158.   "Beenden der Disketten-Verwaltung"
  159.   MENU TO Ausw
  160.   DO CASE
  161.    CASE Ausw=1 && Diskette einlesen
  162.      SAVE SCREEN TO scr
  163.      LW="A:"
  164.      @ 9,9,11,31 BOX BOX3
  165.      @ 8,8 TO 10,30 DOUBLE
  166.      @ 9,9 CLEAR TO 9,29
  167.      @ 8,10 SAY "Laufwerk eingeben !"
  168.      @ 9,10 SAY LW
  169.      @ 9,10 GET LW PICTURE "XXX"
  170.      READ
  171.      STORE UPPER(LW) TO LW
  172.      @ 9,10 SAY LW
  173.      IF .NOT. LASTKEY() = 27
  174.       @ 7,7,11,41 BOX BOX3
  175.       @ 6,6 TO 10,40 DOUBLE
  176.       @ 7,7 CLEAR TO 9,39
  177.       LESE="Laufwerk "+LW+" wird eingelesen !"
  178.       @ 8,10 SAY LESE
  179.       RUN READDIR.EXE &LW DISK.ASC
  180.       APPEND FROM DISK.ASC SDF
  181.       ERASE DISK.ASC
  182.     ENDIF
  183.     RESTORE SCREEN FROM scr
  184.    CASE Ausw=2 && Datenbank bearbeiten
  185.      SAVE SCREEN TO scr
  186.       GO TOP
  187.       SET COLOR TO (farbe3)
  188.       @ 1,0
  189.       DO rahmen
  190.       dtag=date()
  191.       STORE "Editieren von Daten" to option
  192.       DATEI="CATALOG.DBF"
  193.       DO UM_MASK WITH OPTION,DATEI,farbe3
  194.       SET COLOR to (farbe2)
  195.      eing=0
  196.      do while .not. lastkey()=27
  197.      SET COLOR to (farbe2)
  198.      @ 3,4 SAY " Verzeichnis: "
  199.      @ 7,4 SAY " Dateiname: "
  200.      @ 9,4 SAY " Dateiattribute: "
  201.      @ 11,4 SAY " Dateigröße: "
  202.      @ 13,4 SAY " Dateizeit: "
  203.      @ 15,4 SAY " Dateidatum: "
  204.      @ 17,4 SAY " Volume-Label: "
  205.      @ 19,4 SAY " Datensatz Nr.: "
  206.      SET COLOR to (farbe5)
  207.      @ 5,11 SAY CATALOG->DIR
  208.      @ 7,22 SAY CATALOG->NAME
  209.      @ 7,30 SAY CATALOG->EXT
  210.      @ 9,22 SAY CATALOG->ATTR
  211.      @ 11,22 SAY CATALOG->SIZE
  212.      @ 13,22 SAY CATALOG->TIME
  213.      @ 15,22 SAY CATALOG->DATE
  214.      @ 17,22 SAY CATALOG->VOLUME
  215.      @ 19,22 SAY RECNO()
  216.      SET COLOR to (farbe3)
  217.         @ 22,1 CLEAR to 22,78
  218.         @ 22,3  say "<ESC>=Abbruch "
  219.         @ 22,18 say "<F2>=Edit"
  220.         @ 22,29 say "<F3>=Delete"
  221.         @ 22,43 say "<F4>=Browse"
  222.         @ 22,60 say "<F5>=Suchen"
  223.      taste = inkey(0)
  224.      do case
  225.       case taste = 18   && Taste PGUP
  226.        if recno()=lastrec()
  227.        goto top
  228.        ELSE
  229.        skip
  230.        endif
  231.      case taste = 3    && Taste PGDN
  232.        if bof()
  233.        goto bottom
  234.        ELSE
  235.        skip -1
  236.        endif
  237.       case taste = -1   && F2 Taste
  238.       @ 5,11 GET CATALOG->DIR
  239.       @ 7,22 GET CATALOG->NAME
  240.       @ 7,30 GET CATALOG->EXT
  241.       @ 9,22 GET CATALOG->ATTR
  242.       @ 11,22 GET CATALOG->SIZE
  243.       @ 13,22 GET CATALOG->TIME
  244.       @ 15,22 GET CATALOG->DATE
  245.       @ 17,22 GET CATALOG->VOLUME
  246.       read
  247.       case taste = -2     && F3 Taste für löschen
  248.       SAVE SCREEN to temp
  249.       SET COLOR to (Farbe5)
  250.       @ 10,10 to 15,70 double
  251.       SET COLOR to (Farbe3)
  252.       @ 11,11 CLEAR to 14,69
  253.       @ 12, 14 say" Soll der Dantsatz wirklich gelöscht werden (J/N) ? "
  254.       taste = inkey(0)
  255.       if taste = 74 .or. taste = 106
  256.         delete
  257.       endif
  258.       RESTORE SCREEN FROM temp
  259.  
  260.      CASE Taste=-3  && Blättern in Listenform
  261.       SAVE SCREEN TO TEMP
  262.       @ 22,16 SAY " <PGUP><PGDN>=Seitenweises vor- bzw. rückwärts blättern       "
  263.       BROWSE(3,1,20,78)
  264.       RESTORE SCREEN FROM TEMP
  265.     CASE taste=-4  && Suchen von Daten
  266.      asatz=recno()
  267.      SET COLOR to (farbe4)
  268.      SAVE SCREEN to svar
  269.      RAHMEN=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+chr(205)+;
  270.      chr(200)+chr(186)+"░"
  271.      @ 6,10,18,66 BOX RAHMEN
  272.      SET COLOR TO (farbe1)
  273.      @ 5,10 say " Opt: Daten Suchen         DBF:CATALOG.DBF             "
  274.      @ 19,10 say "  <ESC> = Beenden                Ihre Eingabe Bitte >  "
  275.      SET COLOR TO (farbe2)
  276.      dats=SPACE(8)
  277.      @ 8,13 SAY "Bitte geben Sie den Namen ein: "
  278.      @ 8,44 GET dats
  279.      READ
  280.      IF empty(dats) .or. lastkey()=27
  281.       GO asatz
  282.      ELSE
  283.       GO TOP
  284.       LOCATE FOR NAME=UPPER(dats)
  285.       IF NAME=UPPER(DATS)
  286.         @ 17,12 say "Der Datensatz wurde gefunden !!!!  "
  287.       ELSE
  288.         @ 16,12 say "Der Name wurde nicht gefunden, er exestiert noch nicht"
  289.         @ 17,12 say "Der alte Datensatz wird wieder angezeigt........."
  290.         GO asatz
  291.       ENDIF
  292.       Taste=" "
  293.       SET CONSOLE OFF
  294.       @19,69 GET Taste
  295.       READ
  296.       SET CONSOLE on
  297.      ENDIF
  298.      RESTORE SCREEN FROM svar
  299.      ENDCASE
  300.      *
  301.      ** Programmumgebung für die Rückkehr in das Hauptprogramm
  302.      *
  303.      ENDDO
  304.      SET colo to w
  305.      RESTORE SCREEN FROM scr
  306.    CASE AUSW=3 && Suchen und Reorganisation von Daten
  307.      SAVE SCREEN TO scr
  308.      @ 7,9,19,73 BOX BOX3
  309.      @ 6,8 TO 18,72 DOUBLE
  310.      @ 7,9 CLEAR TO 17,71
  311.      @ 6,14 SAY "[■] Information über CATALOG.DBF "
  312.      @ 8,12 SAY "Anzahl der Datensätze/Dateien: "
  313.      @ 8,44 SAY LASTREC()
  314.      @ 10,12 SAY "EXE Dateien:                 Stück "
  315.      @ 11,12 SAY "COM Dateien:                 Stück "
  316.      @ 12,12 SAY "BAT Dateien:                 Stück "
  317.      @ 13,12 SAY "SYS Dateien:                 Stück "
  318.      @ 14,12 SAY "OVL Dateien:                 Stück "
  319.      @ 16,12 SAY "Freier Speicherplatz:        KByte"
  320.      @ 16,35 SAY LTRIM(STR(ROUND((DISKSPACE()/1024),0)))
  321.      DO Zent WITH 24,"Ich lese die Aktuelle Datei CATALOG.DBF: Bitte warten !!!"
  322.      COUNT TO EXE_file FOR EXT =".EXE"
  323.      COUNT TO COM_file FOR EXT =".COM"
  324.      COUNT TO BAT_file FOR EXT =".BAT"
  325.      COUNT TO SYS_file FOR EXT =".SYS"
  326.      COUNT TO OVL_file FOR EXT =".OVL"
  327.      @ 10,25 SAY EXE_FILE
  328.      @ 11,25 SAY COM_FILE
  329.      @ 12,25 SAY BAT_FILE
  330.      @ 13,25 SAY SYS_FILE
  331.      @ 14,25 SAY OVL_FILE
  332.      DO Zent WITH 24,"         <ESC>=Beendet die Anzeige der Dateiinformation !       "
  333.      INFO=.F.
  334.      DO WHILE .NOT. INFO
  335.      taste = inkey(0)
  336.       IF taste = 27
  337.         INFO=.T.
  338.       ENDIF
  339.      ENDDO
  340.      RESTORE SCREEN FROM scr
  341.    CASE AUSW=4 && Druckausgabe von Daten
  342.      SAVE SCREEN TO Scr
  343.      go top
  344.      STORE 0 to zeil
  345.      STORE 1 TO seite
  346.      STORE "" TO wahl
  347.      STORE " " TO sp
  348.      drucker= isprinter()
  349.      SET cursor on
  350.      SET CONSOLE on
  351.      SAVE SCREEN to drscr
  352.      NOPRINT=.F.
  353.      do while .not. drucker .OR. NOPRINT
  354.        *If lastkey()=27
  355.        *  NOPRINT=.T.
  356.        @ 10,10 to 15,70 double
  357.        @ 11,11 CLEAR to 14,69
  358.        @ 12,13 say "!! Achtung !! der Drucker ist nicht bereit "
  359.        @ 13,13 say "Bitte schalten Sie den Drucker EIN un ONLINE "
  360.        drucker =isprinter()
  361.        readkey()
  362.        If lastkey()=27
  363.          NOPRINT=.T.
  364.        ENDIF
  365.      enddo
  366.      RESTORE SCREEN FROM drscr
  367.      SET printer on
  368.      SET margin to 8
  369.      SET CONSOLE off
  370.      ?? chr(27)+chr(40)+chr(49)+chr(48)+chr(85)
  371.      do while .not. eof()
  372.      ? DIR
  373.      ? NAME
  374.      ?? EXT
  375.      ?? " "
  376.      ?? SIZE
  377.      ?? " "
  378.      ?? ATTR
  379.      ?? " "
  380.      ?? TIME
  381.      ?? " "
  382.      ?? DATE
  383.      ? "----------------------- "
  384.      ?? RECNO()
  385.      ?? "      -------------------------"
  386.      STORE zeil+3 to zeil
  387.      if zeil = 60
  388.       ? "****************************************************************"
  389.       datum=date()
  390.       ? "***   Seite Nummer : *** "
  391.       ?? alltrim(str(seite))
  392.       ?? " ***     "
  393.       ?? "Vom Datum : "
  394.       ?? DATUM
  395.       ?? "      ***"
  396.       ? "****************************************************************"
  397.       STORE 0 to zeil
  398.       STORE seite +1 to seite
  399.       endif
  400.      skip
  401.      enddo
  402.      SET printer off
  403.      SET CONSOLE on
  404.      RESTORE SCREEN FROM Scr
  405.    CASE AUSW=5 && Sortieren und INDEX-Wechsel
  406.       SAVE SCREEN TO INTEMP
  407.       @ 8,12,18,72 BOX BOX3
  408.       @ 6,10,17,70 BOX BOX1
  409.       SET wrap on
  410.       * SET message to 24 center
  411.        @ 7,12 PROMPT "Verzeichnis  "    message+;
  412.          "Indexwechsel auf das Datenbankfeld DIR"
  413.        @ 8,12 PROMPT "Name"             message+;
  414.          "Indexwechsel auf das Datenbankfeld NAME"
  415.        @ 9,12 PROMPT "ErweiteRUNg  "    message+;
  416.          "Indexwechsel auf das Datenbankfeld EXT"
  417.        @ 10,12 PROMPT "Dateigröße   "    message+;
  418.          "Indexwechsel auf das Datenbankfeld SIZE"
  419.        @ 11,12 PROMPT "Attribut     "    message+;
  420.          "Indexwechsel auf das Datenbankfeld ATTR"
  421.        @ 12,12 PROMPT "Datum        "    message+;
  422.          "Indexwechsel auf das Datenbankfeld DATE"
  423.        @ 13,12 PROMPT "Uhrzeit      "    message+;
  424.          "Indexwechsel auf das Datenbankfeld TIME"
  425.        @ 14,12 PROMPT "Sortiere     "    message+;
  426.          "Die Datenbank wird sortiert !! "
  427.        @ 13,12 PROMPT "Volume-Label "    message+;
  428.          "Indexwechsel auf das Datenbankfeld VOLUME"
  429.        MENU TO Wahl
  430.        DO CASE
  431.        CASE Wahl = 1
  432.           INDEX ON DIR TO IND3
  433.           USE CATALOG INDEX IND3
  434.        CASE Wahl = 2
  435.           INDEX ON NAME TO IND4
  436.           USE CATALOG INDEX IND4
  437.        CASE Wahl = 3
  438.           INDEX ON EXT TO IND5
  439.           USE CATALOG INDEX IND5
  440.        CASE Wahl = 4
  441.           INDEX ON SIZE TO IND6
  442.           USE CATALOG INDEX IND6
  443.        CASE Wahl = 5
  444.           INDEX ON ATTR TO IND7
  445.           USE CATALOG INDEX IND7
  446.        CASE Wahl = 6
  447.           INDEX ON DATE TO IND8
  448.           USE CATALOG INDEX IND8
  449.        CASE Wahl = 7
  450.           INDEX ON TIME TO IND9
  451.           USE CATALOG INDEX IND9
  452.        CASE Wahl = 8
  453.         sort on name,EXT,DIR,SIZE to TEMP$$
  454.         CLOSE
  455.         RUN ren CATALOG.dbf alt.dbf
  456.         RUN ren temp$$.dbf CATALOG.dbf
  457.         use CATALOG
  458.         ERASE ALT.DBF
  459.        CASE Wahl = 9
  460.         INDEX ON VOLUME TO IND10
  461.         USE CATALOG INDEX IND10
  462.       ENDCASE
  463.       RESTORE SCREEN FROM INTEMP
  464.    CASE AUSW=6 .or. lastkey()=27  && Programmende
  465.      ********************************************
  466.      **  Programmende ( Sicherheitsabfrage )   **
  467.      ********************************************
  468.      SAVE SCREEN to endscr
  469.      SET COLOR to
  470.      CLEAR
  471.      SET COLOR TO (farbe6)
  472.      ende=chr(213)+chr(205)+chr(184)+chr(179)+chr(190)+;
  473.      chr(205)+chr(212)+chr(179)+"▒"
  474.      @ 4,2,14,77 BOX ende
  475.      z=6
  476.      SET COLOR TO (farbe1)
  477.      STORE " Sie haben den Programmpunkt  - E N D E-  gewählt " TO Text
  478.      DO zent WITH z,text
  479.      STORE " Wollen Sie wirklich  B E E N D E N  ?  J/N " TO Text
  480.      z=z+4                   && Zeile neu festlegen
  481.      SET COLOR TO (farbe1)
  482.      DO zent WITH z,text
  483.      *
  484.       TONE(940,5)
  485.      *
  486.      SET COLOR TO
  487.      SET CONSOLE OFF
  488.      SET CURSOR OFF
  489.      @ 24,79
  490.      WAIT TO ewahl
  491.      SET CONSOLE on
  492.      IF ewahl ="J" .or. ewahl="j"
  493.         EXIT
  494.      ELSE
  495.       RESTORE SCREEN FROM endscr
  496.       ausw=" "
  497.      ENDIF
  498.  ENDCASE
  499. ENDDO
  500. CLEAR
  501. SET COLOR TO (farbe4)
  502. @ 2,8 TO 10,72 DOuble
  503. @ 3,9 CLEAR TO 9,71
  504. SET COLOR TO (farbe2)
  505. z=4
  506. STORE "  Vielen Dank für den Einsatz der Disketten-Verwaltung  " TO text
  507. DO zent WITH z,text
  508. z=z+2
  509. STORE "  (C) 1991 by  Volker Vogeley & DMV Verlag  " TO text
  510. DO zent WITH z,text
  511. SET cursor off
  512. FOR e=1 TO 2000
  513. next
  514. ?
  515. ?
  516. ?
  517. ?
  518. ?
  519. PACK
  520. SET COLOR TO
  521. CLOSE all
  522. SET cursor on
  523. QUIT
  524. 
  525.