!*! Updated on 18-Jun-91 at 10:25 AM by Darin T. Zephier; edit time: 0:01:35
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! DIOCESE OF LAFAYETTE                                     MAY 1ST, 1991   !
! AUTHOR: DARREL DRONET                                                    !
!   Enhanced SuperVUE directory listing program.                           !
!   Uses 'SVDIR' to dump file list to disk and then display.               !
!   Uses 'LOOK' to view files.                                             !
!   Uses 'INKEY.SBR' for input, screen will go 'dormant' after about       !
!         five minutes inactivety, to prevent this from hogging CPU time.  !
!   Uses a command file 'DR.CMD'->:T                                       !
!                               ->RUN DR                                   !
!   Place 'DR.RUN' in DSK0:[7,6], 'DR.CMD' in DSK0:[2,2]                   !
!   (check code if you need to use different names)                        !
!   CAUTION:  Uses WYSE50 terminal escape sequences for display, you may   !
!             wish to rewrite to make device independent.                  !
!   WARNING:  Uses 'DIRSEQ' each time a new list is displayed, take this   !
!             out if there are multiple users accessing disk!!!!!          !
!             Line 127, currently commented out.                           !
!   NOTE1:    Creates several temporary command files which are chained    !
!             to and deleted.  If it unexpectedly stops working, try       !
!             eraseing 'DR.CNT', was probably left because a command file  !
!             was broken out of by Control C.                              !
!   NOTE2:    Does not actually delete file, renames it with an extension  !
!             of '.ZZT' it is you to your regular file maintenance to      !
!             clear these.                                                 !
!   DISCLAIMER:  There is no warranty implied or otherwise for the         !
!                suitablility of this program.  Use at your own risk.      !
!                Test it before you use it on a regular basis.             !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
100 !MAPS
   MAP1 DESCRIPTION,S,70
   MAP1 FILES(1000),S,63
   MAP1 NEW'NAME,S,6
   MAP1 OLD'NAME,S,6
   MAP1 COUNT,F,6,0
   MAP1 I,F,6
   MAP1 A$,S,1
   MAP1 CURRENT,F,6
   MAP1 POSITION,F,6
   MAP1 REBUILD,F,6
   MAP1 YES,F,6,0
   MAP1 NO,F,6,1
   MAP1 EXIST,F,6
   MAP1 MASK,S,10

ON ERROR GOTO END'IT'ALL

! GET SAVED PARAMETER IF AVAILABLE
  LOOKUP "DR.CNT",EXIST
   IF EXIST = 0 THEN POSITION = 1 : CURRENT = 1 : REBUILD = YES
   IF EXIST <> 0 THEN GOSUB GET'LAST
   IF CURRENT < 1 THEN CURRENT = 1
   IF POSITION < 1 THEN POSITION = 1

IF REBUILD = NO THEN GOTO 200
   LOOKUP "SVDIR.LST",EXIST
   IF EXIST <> 0 THEN KILL "SVDIR.LST"
110 PRINT TAB(-1,0);CHR(27);"H";CHR(2);
111 PRINT TAB( 9,20);"2:::::::::::::::::::::::::::::::::3";
112 PRINT TAB(10,20);"6                                 6";
113 PRINT TAB(11,20);"1:::::::::::::::::::::::::::::::::5";CHR(27);"H";CHR(3)
   PRINT CHR(7);
   IF MASK = "" THEN PRINT TAB(10,21);" ENTER FILE MASK"; : INPUT MASK
114 PRINT TAB(10,21);" READING DIRECTORY...PLEASE WAIT ";
   REBUILD = NO
   GOSUB SAVE'LAST
120 OPEN #1,"GETDIR.CMD",OUTPUT
126 PRINT #1,":S"
127 PRINT #1,"DIRSEQ"
128 PRINT #1,"SVDIR SVDIR.LST=";MASK
130 PRINT #1,"ERASE GETDIR.CMD"
135 PRINT #1,":T"
140 PRINT #1,"RUN DR"
145 CLOSE #1
150 CHAIN "GETDIR.CMD"

200 LOOKUP "SVDIR.LST",EXIST
   IF EXIST = 0 THEN PRINT "NO SUPERVUE FILES IN CURRENT DIRECTORY" : END
201 OPEN #2,"SVDIR.LST",INPUT
   IF EOF(2) THEN PRINT "NO SUPERVUE FILES IN CURRENT DIRECTORY" : END
204 INPUT LINE #2,DESCRIPTION
210 LOOP:
   IF EOF(2) THEN GOTO 300
   COUNT = COUNT + 1
   INPUT LINE #2, DESCRIPTION
   FILES(COUNT) = DESCRIPTION[1,7] + "-" + DESCRIPTION[14,70]
   IF FILES(COUNT) = "-" THEN COUNT = COUNT - 1
   IF COUNT = 1000 THEN PRINT TAB(12,10);"WARNING!!! MORE THAN 1000 FILES, ONLY 1ST 1000 WILL BE LISTED" : INPUT EXIST : GOTO 300
   GOTO LOOP

300 ! INITIALIZE SCREEN
   IF CURRENT > COUNT THEN CURRENT = COUNT
   GOSUB PRINT'ALL

400 READKEY:
   A$ = ""
   XCALL INKEY,A$
   EXIST = EXIST + 1
   IF EXIST >= 30000 THEN GOTO DORMANT
   IF A$ = CHR(27) THEN GOTO END'IT'ALL
   IF A$ = CHR(13) THEN GOTO LOOK'AT'IT
   IF A$ = CHR(10) THEN GOSUB MOVE'DOWN
   IF A$ = CHR(11) THEN GOSUB MOVE'UP
   IF A$ = CHR(14) THEN GOSUB CREATE
   IF A$ = CHR(9) THEN GOTO END'IT'ALL
   IF A$ = CHR(18) THEN GOSUB PAGE'UP
   IF A$ = CHR(20) THEN GOSUB PAGE'DOWN
   IF A$ = CHR(19) THEN GOTO SUPERVUE
   IF A$ = CHR(30) THEN POSITION = 1 : CURRENT = 1 : GOSUB PRINT'ALL
   IF A$ = CHR(5)  THEN GOSUB DO'END
   IF A$ = CHR(8)  THEN GOSUB RENAME
   IF A$ = CHR(12) THEN GOSUB DELETE
   A$ = UCS(A$)
   IF A$ >= "A" AND A$ <= "Z" THEN GOSUB POSITION
   GOTO READKEY

450 POSITION:
   FOR I = COUNT TO 1 STEP - 1
       IF FILES(I)[1,1] >= "1" AND FILES(I)[1,1] <= "9" THEN NEXT I
       IF FILES(I)[1,1] < A$ THEN CURRENT = I : I = 0
   NEXT I
   POSITION = 1
   IF CURRENT < 1 THEN CURRENT = 1
   GOSUB PRINT'ALL
   RETURN

500 MOVE'DOWN:
   IF CURRENT = COUNT THEN PRINT CHR(7); : RETURN
   GOSUB REGULAR
   IF POSITION <> 24 THEN CURRENT = CURRENT + 1 : &
                          POSITION = POSITION + 1 : &
                          GOSUB REVERSE : RETURN
   IF POSITION = 24 THEN POSITION = 2 : &
                         CURRENT = CURRENT + 1 : &
                         GOSUB PRINT'ALL : RETURN
520 MOVE'UP:
   IF CURRENT = 1 THEN PRINT CHR(7); : RETURN
   GOSUB REGULAR
   IF POSITION <> 1 THEN CURRENT = CURRENT - 1 : &
                         POSITION = POSITION - 1 : &
                         GOSUB REVERSE : RETURN
   IF POSITION = 1 THEN POSITION = 23 : &
                         CURRENT = CURRENT + 1 : &
                         GOSUB PRINT'ALL : RETURN
540 PAGE'UP:
     CURRENT = CURRENT - 24
     IF CURRENT < 1 THEN CURRENT = 1
     POSITION = 1 : GOSUB PRINT'ALL
   RETURN
560 PAGE'DOWN:
       CURRENT = CURRENT + 24
       IF CURRENT > COUNT THEN CURRENT = COUNT
       POSITION = 24
       IF CURRENT < 24 THEN POSITION = CURRENT
       GOSUB PRINT'ALL
   RETURN
580 DO'END:
       CURRENT = COUNT
       POSITION = 24
       IF CURRENT < 24 THEN POSITION = CURRENT
       GOSUB PRINT'ALL
   RETURN

1000 LOOK'AT'IT:
    REBUILD = NO
    GOSUB SAVE'LAST
    PRINT TAB(-1,0);
    OPEN #1,"SVLOOK.CMD",OUTPUT
       PRINT #1,":S"
       PRINT #1,"ERASE SVLOOK.CMD"
       PRINT #1,"C"
       PRINT #1,":T"
       PRINT #1,"LOOK ";FILES(CURRENT)[1,6]
       PRINT #1,"RUN DR"
       CLOSE #1
       CHAIN "SVLOOK.CMD"

1020 SUPERVUE:
    REBUILD = NO
    GOSUB SAVE'LAST
    PRINT TAB(-1,0);
    OPEN #1,"SVLOOK.CMD",OUTPUT
       PRINT #1,":S"
       PRINT #1,"ERASE SVLOOK.CMD"
       PRINT #1,"C"
       PRINT #1,":T"
       PRINT #1,"SV ";FILES(CURRENT)[1,6]
       PRINT #1,"RUN DR"
       CLOSE #1
       CHAIN "SVLOOK.CMD"
   RETURN

1100 GET'LAST:
       OPEN #7, "DR.CNT",INPUT
       INPUT #7, REBUILD, POSITION, CURRENT, MASK
       CLOSE #7
       RETURN

1150 SAVE'LAST:
       OPEN #7,"DR.CNT",OUTPUT
       PRINT #7, REBUILD, POSITION, CURRENT, MASK
       CLOSE #7
       RETURN

1200 PRINT'ALL:
   PRINT TAB(-1,0);
   EXIST = 24
   IF EXIST > COUNT THEN EXIST = COUNT
   PRINT CURRENT, POSITION
   FOR I = 1 TO EXIST
       PRINT TAB(I,1);" ";FILES(CURRENT - POSITION + I);" ";
   NEXT I
   GOSUB PRINT'COMMAND
   GOSUB REVERSE
   RETURN

1800 REVERSE:
   PRINT TAB(POSITION,1);TAB(-1,32);FILES(CURRENT);TAB(-1,33);
   RETURN

1900 REGULAR:
   PRINT TAB(POSITION,1);" ";FILES(CURRENT);" ";
   RETURN

1950 CREATE:
       PRINT TAB( 1,66);CHR(7);CHR(27);"H";CHR(2);"2:::::::::::::3"
       PRINT TAB( 2,66);"6             6";
       PRINT TAB( 3,66);"4<<<<<<<<<<<<<9";
       PRINT TAB( 4,66);"6             6";
       PRINT TAB( 5,66);"6             6";
       PRINT TAB( 6,66);"4:::::::::::::9";
       PRINT TAB( 7,66);"6             6";
       PRINT TAB( 8,66);"4:::::::::::::9";
       PRINT TAB( 9,66);"6             6";
       PRINT TAB(10,66);"6             6";
       PRINT TAB(11,66);"4:::::::::::::9";
       PRINT TAB(12,66);"6             6";
       PRINT TAB(13,66);"1<<<<<<<<<<<<<5";CHR(27);"H";CHR(3);
       PRINT TAB(14,66);"               ";
       PRINT TAB(15,66);"               ";
       PRINT TAB(16,66);"               ";
       PRINT TAB(17,66);"               ";
       PRINT TAB(18,66);"               ";
       PRINT TAB(19,66);"               ";
       PRINT TAB(20,66);"               ";
       PRINT TAB(21,66);"               ";
       PRINT TAB(22,66);"               ";
       PRINT TAB(23,66);"               ";
       PRINT TAB( 2,67);"   CREATE    ";
       PRINT TAB( 4,67);" ENTER NEW   ";
       PRINT TAB( 5,67);" NAME        ";
       PRINT TAB( 7,68);
    NEW'NAME = ""
    INPUT NEW'NAME
    NEW'NAME = UCS(NEW'NAME)
    XCALL STRIP,NEW'NAME
    IF LEN(NEW'NAME) < 1 THEN PRINT TAB(9,68);CHR(7); : &
                       PRINT TAB( 9,68);"INVALID NAME"; : &
                       PRINT TAB( 9,68);""; : GOTO SKIP'CREATE
    LOOKUP NEW'NAME + ".T",EXIST
    IF EXIST <> 0 THEN PRINT TAB( 9,68);CHR(7); : &
                       PRINT TAB( 9,68);"NAME ALREADY"; : &
                       PRINT TAB(10,68);"  IN USE!"; : GOTO SKIP'CREATE
    PRINT TAB(9,68);"CONFIRM(Y/N)";
    GOSUB GET'Y'N
    PRINT CHR(7);
    IF A$ = "N" THEN GOTO SKIP'CREATE
    PRINT TAB(-1,0);
    REBUILD = YES
    GOSUB SAVE'LAST
    PRINT TAB(-1,0);
    OPEN #1,"SVLOOK.CMD",OUTPUT
       PRINT #1,":S"
       PRINT #1,"ERASE SVLOOK.CMD"
       PRINT #1,"C"
       PRINT #1,":T"
       PRINT #1,"SV ";NEW'NAME
       PRINT #1,"RUN DR"
       CLOSE #1
       CHAIN "SVLOOK.CMD"
    SKIP'CREATE:
    PRINT TAB(12,68);"PRESS A KEY";
    GOSUB KEY'PRESS
    GOSUB PRINT'COMMAND
    GOSUB REVERSE
    RETURN

2000 RENAME:
    OLD'NAME = FILES(CURRENT)[1,6]
    XCALL STRIP,OLD'NAME
       PRINT TAB( 1,66);CHR(7);CHR(27);"H";CHR(2);"2:::::::::::::3"
       PRINT TAB( 2,66);"6             6";
       PRINT TAB( 3,66);"4<<<<<<<<<<<<<9";
       PRINT TAB( 4,66);"6             6";
       PRINT TAB( 5,66);"4:::::::::::::9";
       PRINT TAB( 6,66);"6             6";
       PRINT TAB( 7,66);"6             6";
       PRINT TAB( 8,66);"4:::::::::::::9";
       PRINT TAB( 9,66);"6             6";
       PRINT TAB(10,66);"4:::::::::::::9";
       PRINT TAB(11,66);"6             6";
       PRINT TAB(12,66);"6             6";
       PRINT TAB(13,66);"4:::::::::::::9";
       PRINT TAB(14,66);"6             6";
       PRINT TAB(15,66);"1<<<<<<<<<<<<<5";CHR(27);"H";CHR(3);
       PRINT TAB(16,66);"               ";
       PRINT TAB(17,66);"               ";
       PRINT TAB(18,66);"               ";
       PRINT TAB(19,66);"               ";
       PRINT TAB(20,66);"               ";
       PRINT TAB(21,66);"               ";
       PRINT TAB(22,66);"               ";
       PRINT TAB(23,66);"               ";
       PRINT TAB( 2,67);"   RENAME    ";
       PRINT TAB( 4,67);"  ";TAB(-1,32);FILES(CURRENT)[1,6];TAB(-1,33);
       PRINT TAB( 6,67);" ENTER NEW   ";
       PRINT TAB( 7,67);" NAME        ";
       PRINT TAB( 9,68);
    NEW'NAME = ""
    INPUT NEW'NAME
    NEW'NAME = UCS(NEW'NAME)
    XCALL STRIP,NEW'NAME
    IF LEN(NEW'NAME) < 1 THEN PRINT TAB(11,68);CHR(7); : &
                       PRINT TAB(11,68);"INVALID NAME"; : &
                       PRINT TAB(12,68);""; : GOTO SKIP'NAME
    LOOKUP NEW'NAME + ".T",EXIST
    IF EXIST <> 0 THEN PRINT TAB(11,68);CHR(7); : &
                       PRINT TAB(11,68);"NAME ALREADY"; : &
                       PRINT TAB(12,68);"  IN USE!"; : GOTO SKIP'NAME
!    PRINT TAB(22,5);"RENAME ";TAB(-1,32);" ";FILES(CURRENT)[1,6];" ";TAB(-1,33);" TO ";TAB(-1,32);" ";NEW'NAME;" ";TAB(-1,33);" Y to confirm ";
       PRINT TAB( 5,66);CHR(27);"H";CHR(2);"6             6";
       PRINT TAB( 6,66);"6             6";
       PRINT TAB( 7,66);"4:::::::::::::9";
       PRINT TAB( 8,66);"6             6";
       PRINT TAB( 9,66);"4:::::::::::::9";
       PRINT TAB(10,66);"6             6";
       PRINT TAB(11,66);"6             6";
       PRINT TAB(12,66);"6             6";
       PRINT TAB(13,66);"4:::::::::::::9";
       PRINT TAB(14,66);"6             6";
       PRINT TAB(15,66);"1<<<<<<<<<<<<<5";CHR(27);"H";CHR(3);
       PRINT TAB( 5,67);"     TO      ";
       PRINT TAB( 6,67);"  ";TAB(-1,32);NEW'NAME[1,6];TAB(-1,33);
       PRINT TAB( 8,67);" CONFIRM(Y/N)";
    PRINT TAB(8,79);CHR(7);
    GOSUB GET'Y'N
    PRINT CHR(7);
    IF A$ = "N" THEN GOTO SKIP'NAME
    PRINT TAB(-1,0);
    REBUILD = YES
    GOSUB SAVE'LAST
    OPEN #1,"SVLOOK.CMD",OUTPUT
       PRINT #1,":S"
       PRINT #1,"RENAME ";NEW'NAME;".T=";OLD'NAME;".T"
       PRINT #1,"ERASE SVLOOK.CMD"
       PRINT #1,":T"
       PRINT #1,"RUN DR"
       CLOSE #1
       CHAIN "SVLOOK.CMD"
    SKIP'NAME:
    PRINT TAB(14,68);"PRESS A KEY";
    GOSUB KEY'PRESS
    GOSUB PRINT'COMMAND
    GOSUB REVERSE
    RETURN

2100 DELETE:
    OLD'NAME = FILES(CURRENT)[1,6]
    XCALL STRIP,OLD'NAME
    NEW'NAME = OLD'NAME
       PRINT TAB( 1,66);CHR(7);CHR(27);"H";CHR(2);"2:::::::::::::3"
       PRINT TAB( 2,66);"6             6";
       PRINT TAB( 3,66);"4<<<<<<<<<<<<<9";
       PRINT TAB( 4,66);"6             6";
       PRINT TAB( 5,66);"4:::::::::::::9";
       PRINT TAB( 6,66);"6             6";
       PRINT TAB( 7,66);"4:::::::::::::9";
       PRINT TAB( 8,66);"6             6";
       PRINT TAB( 9,66);"4:::::::::::::9";
       PRINT TAB(10,66);"6             6";
       PRINT TAB(11,66);"1<<<<<<<<<<<<<5";
       PRINT TAB(12,66);"               ";
       PRINT TAB(13,66);"               ";
       PRINT TAB(14,66);"               ";
       PRINT TAB(15,66);"               ";CHR(27);"H";CHR(3);
       PRINT TAB(16,66);"               ";
       PRINT TAB(17,66);"               ";
       PRINT TAB(18,66);"               ";
       PRINT TAB(19,66);"               ";
       PRINT TAB(20,66);"               ";
       PRINT TAB(21,66);"               ";
       PRINT TAB(22,66);"               ";
       PRINT TAB(23,66);"               ";
       PRINT TAB( 2,67);"   DELETE    ";
       PRINT TAB( 4,67);"  ";TAB(-1,32);FILES(CURRENT)[1,6];TAB(-1,33);
       PRINT TAB( 6,67);" CONFIRM(Y/N)";
       PRINT TAB( 9,68);
    PRINT TAB(6,80);CHR(7);
    GOSUB GET'Y'N
    PRINT CHR(7);
    IF A$ = "N" THEN GOTO SKIP'DELETE
    PRINT TAB(8,68);"AGAIN (Y/N)";CHR(7);
    GOSUB GET'Y'N
    PRINT CHR(7)
    IF A$ = "N" THEN GOTO SKIP'DELETE
    PRINT TAB(-1,0);
    POSITION = POSITION - 1
    CURRENT = CURRENT  - 1
    IF POSITION < 1 THEN POSITION = 1
    IF CURRENT < 1 THEN CURRENT = 1
    REBUILD = YES
    GOSUB SAVE'LAST
    OPEN #1,"SVLOOK.CMD",OUTPUT
       PRINT #1,":S"
       PRINT #1,"RENAME ";NEW'NAME;".ZZT=";OLD'NAME;".T"
       PRINT #1,"ERASE SVLOOK.CMD"
       PRINT #1,":T"
       PRINT #1,"RUN DR"
       CLOSE #1
       CHAIN "SVLOOK.CMD"
    SKIP'DELETE:
    PRINT TAB(10,68);"PRESS A KEY";
    GOSUB KEY'PRESS
    GOSUB PRINT'COMMAND
    GOSUB REVERSE
    RETURN

2150 PRINT'COMMAND:
       PRINT TAB( 1,66);CHR(27);"H";CHR(2);"2:::::::::::::3"
       PRINT TAB( 2,66);"6             6";
       PRINT TAB( 3,66);"4<<<<<<<<<<<<<9";
       PRINT TAB( 4,66);"6             6";
       PRINT TAB( 5,66);"4:::::::::::::9";
       PRINT TAB( 6,66);"6             6";
       PRINT TAB( 7,66);"6             6";
       PRINT TAB( 8,66);"6             6";
       PRINT TAB( 9,66);"6             6";
       PRINT TAB(10,66);"6             6";
       PRINT TAB(11,66);"6             6";
       PRINT TAB(12,66);"6             6";
       PRINT TAB(13,66);"4:::::::::::::9";
       PRINT TAB(14,66);"6             6";
       PRINT TAB(15,66);"4:::::::::::::9";
       PRINT TAB(16,66);"6             6";
       PRINT TAB(17,66);"6             6";
       PRINT TAB(18,66);"6             6";
       PRINT TAB(19,66);"6             6";
       PRINT TAB(20,66);"6             6";
       PRINT TAB(21,66);"6             6";
       PRINT TAB(22,66);"1<<<<<<<<<<<<<5";CHR(27);"H";CHR(3);
       PRINT TAB( 2,67);"  COMMANDS   ";
       PRINT TAB( 4,67);"  POSTITION  ";
       PRINT TAB( 6,67);"HOME         ";
       PRINT TAB( 7,67);"UP/DOWN      ";
       PRINT TAB( 8,67);"^R..(page up)";
       PRINT TAB( 9,67);"^T(page down)";
       PRINT TAB(10,67);"^E......(end)";
       PRINT TAB(11,67);"ESC/^C.(exit)";
       PRINT TAB(12,67);"(alpha char.)";
       PRINT TAB(14,67);"    FILE     ";
       PRINT TAB(16,67);"RETURN.(LOOK)";
       PRINT TAB(17,67);
"^S.(SuperVUE)";
       PRINT TAB(18,67);"^N...(create)";
       PRINT TAB(19,67);"LEFT.(rename)";
       PRINT TAB(20,67);"RIGHT(delete)";
       PRINT TAB(21,67);"^I.(new mask)";
       RETURN

2200 GET'Y'N:
    A$ = ""
    XCALL INKEY,A$
    A$ = UCS(A$)
    IF A$ = "Y" OR A$ = "N" THEN RETURN
    GOTO GET'Y'N

2250 KEY'PRESS:
    A$ = ""
    XCALL INKEY,A$
    IF A$ <> "" THEN RETURN
    GOTO KEY'PRESS

2300 END'IT'ALL:
    LOOKUP "DR.CNT",EXIST
    IF EXIST <> 0 THEN KILL "DR.CNT"
    LOOKUP "SVDIR.LST",EXIST
    IF EXIST <> 0 THEN KILL "SVDIR.LST"
    LOOKUP "SVLOOK.CMD",EXIST
    IF EXIST <> 0 THEN KILL "SVLOOK.CMD"
    PRINT TAB(-1,0);
    IF A$ = CHR(9) THEN CHAIN "DR"
    END

2400 DORMANT:
   PRINT TAB(-1,0);CHR(27);"H";CHR(2);
   PRINT TAB( 9,20);"2:::::::::::::::::::::::::::::::::3";
   PRINT TAB(10,20);"6                                 6";
   PRINT TAB(11,20);"1:::::::::::::::::::::::::::::::::5";CHR(27);"H";CHR(3)
   PRINT TAB(10,21);" SCREEN DORMANT...PRESS RETURN ";
   INPUT A$
   EXIST = 0
   GOTO 300
   RETURN