400 CLS:KEY(1) ON:ON KEY(1) GOSUB 6:GOSUB 500
410 PRINT:PRINT "Strike any key to continue.":
420 A$=INKEY$:IF A$="" THEN 420 ELSE GOTO 10
500 INPUT "Enter the name of the file to be used: ",FILE$
510 IF FILE$="?" THEN FILES DISK$+"*":GOTO 500
520 FILE$=DISK$+FILE$
530 ON ERROR GOTO 590
540 OPEN FILE$ FOR INPUT AS #1
550 ON ERROR GOTO 0:CLOSE 1:PRINT:PRINT "Old file.":PRINT:PRINT "Do you want to delete (DEL), overwrite (OVER), or use a different file (CR)?"
560 INPUT A$:IF A$="OVER" OR A$="over" THEN GOTO 610
570 IF A$="DEL" OR A$="del" THEN KILL FILE$:RETURN
580 GOTO 500
590 IF ERR=53 THEN RESUME 600 ELSE PRINT "Unrecoverable error: ";ERR:STOP
600 ON ERROR GOTO 0:CLOSE:PRINT "New file."
610 PRINT "Enter your sequence. Use A, a or 1 for adenine.":PRINT TAB(23) "Use C, c or 2 for cytosine.":PRINT TAB(23) "Use G, g or 3 for guanine.":PRINT TAB(23) "Use T, t or 4 for thymine."
620 PRINT TAB(23) "Use N, n or 5 for an uncertain base.":PRINT TAB(23) "Use backspace to correct an error.":PRINT:PRINT TAB(23) "Press enter ("+CHR$(17)+CHR$(217)+") when all bases have been typed in.":FOR N=1 TO 500:NEXT N:CLS
630 I=1:LENGTH=0:ERASE SEQ$:DIM SEQ$(20)
640 A$=INKEY$:IF A$="" GOTO 640
650 IF A$="1" OR A$="A" OR A$="a" THEN SEQ$(I)=SEQ$(I)+"A":LENGTH=LENGTH+1:PRINT "A";:P$ = "O3L32C":GOTO 780
660 IF A$="2" OR A$="C" OR A$="c" THEN SEQ$(I)=SEQ$(I)+"C":LENGTH=LENGTH+1:PRINT "C";:P$ = "O3L32E":GOTO 780
670 IF A$="3" OR A$="G" OR A$="g" THEN SEQ$(I)=SEQ$(I)+"G":LENGTH=LENGTH+1:PRINT "G";:P$ = "O3L32G":GOTO 780
680 IF A$="4" OR A$="T" OR A$="t" THEN SEQ$(I)=SEQ$(I)+"T":LENGTH=LENGTH+1:PRINT "T";:P$ = "O4L32C":GOTO 780
690 IF A$="5" OR A$="N" OR A$="n" THEN SEQ$(I)=SEQ$(I)+"N":LENGTH=LENGTH+1:PRINT "N";:P$ = "O4L32E":GOTO 780
700 IF A$<>CHR$(8) GOTO 760
710 IF LENGTH MOD 250=0 THEN IF LENGTH=0 GOTO 770 ELSE I=I-1
720 LENGTH=LENGTH-1:SEQ$(I)=LEFT$(SEQ$(I),(LENGTH-1) MOD 250+1)
730 R=CSRLIN:C=POS(0)-1:IF C=0 THEN R=R-1:C=80
740 LOCATE R,C:PRINT " ";:LOCATE R,C
750 GOTO 640
760 IF A$=CHR$(13) THEN PRINT:PRINT:I=0:GOTO 810
770 PLAY "L8O5C":GOTO 640
780 IF LENGTH MOD 250 = 0 THEN I=I+1
790 IF PLAFLG THEN PLAY P$
800 GOTO 640
810 PRINT:PRINT "Enter a title for your sequence."
820 INPUT TITLE$:IF LEFT$(TITLE$,1)=";" THEN I=I+1:CMM$(I)=TITLE$:GOTO 810
830 OPEN FILE$ FOR OUTPUT AS #1
840 PRINT #1,";@@ saved "+DATE$+" "+TIME$+" edited 00-00-0000 00:00:00"
850 FOR J=1 TO I:PRINT #1,CMM$(J):NEXT
860 PRINT #1,TITLE$
870 I=1:FIRST=1
880 N=LEN(SEQ$(I))-FIRST+1:IF N>50 THEN N=50
890 IF N=0 THEN PRINT #1,"1":CLOSE #1:PRINT:PRINT:PRINT LENGTH;:PRINT " bases saved.":RETURN
900 A$=MID$(SEQ$(I),FIRST,N)
910 PRINT #1,A$
920 IF N+FIRST>LEN(SEQ$(I)) THEN I=I+1:FIRST=1 ELSE FIRST=FIRST+N
930 GOTO 880
1000 END
Return to The Skeptic Tank's main Index page.
The views and opinions stated within this web page are those of the
author or authors which wrote them and may not reflect the views and
opinions of the ISP or account user which hosts the web page. The
opinions may or may not be those of the Chairman of The Skeptic Tank.