1 DIM SEQ$(20):DISK$="B:":PRTFLG=0:SCRFLG=1:MAXL=3000:PLAFLG=1
5 COMMON LENGTH,SEQ$(),TITLE$,PRTFLG,SCRFLG,PLAFLG,DISK$,MAST,MAXL
6 CLOSE:KEY OFF
10 KEY(1) ON:ON KEY(1) GOSUB 310
20 KEY(2) ON:ON KEY(2) GOSUB 320
30 KEY(3) ON:ON KEY(3) GOSUB 330
40 KEY(4) ON:ON KEY(4) GOSUB 340
50 KEY(5) ON:ON KEY(5) GOSUB 350
60 KEY(6) ON:ON KEY(6) GOSUB 360
70 KEY(7) ON:ON KEY(7) GOSUB 370
80 KEY(8) ON:ON KEY(8) GOSUB 380
90 KEY(9) ON:ON KEY(9) GOSUB 390
95 KEY(10) ON:ON KEY(10) GOSUB 395
98 GOSUB 100
99 GOTO 99
100 CLS:PRINT:PRINT:PRINT:COLOR 9,0:PRINT "KEY";:COLOR 7,0:PRINT " ";:COLOR 9,0:PRINT "FUNCTION";:COLOR 7,0:PRINT " ";:COLOR 9,0:PRINT "DESCRIPTION";:COLOR 7,0:PRINT:PRINT
110 PRINT " F1 MENU Prints page two of this list"
120 PRINT " F2 ENTER Accepts your sequence from the keyboard"
130 PRINT " F3 EDIT Allows you to make changes in a file"
140 PRINT " F4 READ Reads a file containing your sequence"
150 PRINT " F5 PRINT Prints your sequence"
160 PRINT " F6 REST Finds restriction enzyme sites in your sequence"
170 PRINT " F7 SEARCH Finds all positions of a specified sequence"
180 PRINT " F8 TRANS Translates your sequence in all possible frames"
190 PRINT " F9 COMPII Compares two files"
195 PRINT "F10 CONTROL Changes the parameters which control program flow"
196 PRINT:PRINT:PRINT:PRINT "Depress the apropriate function key to continue."
200 RETURN
310 MAST=1:CHAIN "PAGE2"
320 IF MAST=2 THEN GOTO 400 ELSE MAST=2:CHAIN MERGE "ENTER",400,DELETE 500-1000
330 IF MAST=3 THEN GOTO 400 ELSE MAST=3:CHAIN MERGE "EDIT",400,DELETE 500-1000
340 IF MAST=4 THEN GOTO 400 ELSE MAST=4:CHAIN MERGE "READ",400,DELETE 500-1000
350 IF MAST=5 THEN GOTO 400 ELSE MAST=5:CHAIN MERGE "PRINT",400,DELETE 500-1000
360 IF MAST=6 THEN GOTO 400 ELSE MAST=6:CHAIN MERGE "REST",400,DELETE 500-1000
370 IF MAST=7 THEN GOTO 400 ELSE MAST=7:CHAIN MERGE "SEARCH",400,DELETE 500-1000
380 IF MAST=8 THEN GOTO 400 ELSE MAST=8:CHAIN MERGE "TRANS",400,DELETE 500-1000
390 IF MAST=9 THEN GOTO 400 ELSE MAST=9:CHAIN MERGE "COMPII",400,DELETE 500-1000
395 IF MAST=10 THEN GOTO 400 ELSE MAST=10:CHAIN MERGE "CONTROL",400,DELETE 500-1000
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 IF PRTFLG=1 THEN OPEN "LPT1:" FOR OUTPUT AS #2
510 IF PRTFLG=2 THEN INPUT "Enter the file which is to recieve the output: ",A$:OPEN DISK$+A$ FOR OUTPUT AS #2:PRINT
520 RESTORE:READ NENZ
530 IF PRTFLG THEN PRINT #2,TITLE$:PRINT #2,""
540 PRINT "Sites searched for:":PRINT:IF PRTFLG THEN PRINT #2,"Sites searched for:":PRINT #2,""
550 FOR I=1 TO NENZ
560 READ ENZ$,CUT,NPAL:FOR J=1 TO NPAL:READ PAL$:NEXT
570 PRINT USING "\ \";ENZ$;:IF PRTFLG THEN PRINT #2,USING "\ \";ENZ$;
580 IF I MOD 9 = 0 THEN PRINT:IF PRTFLG THEN PRINT #2,""
590 NEXT
600 PRINT:PRINT:PRINT "Sites found:":PRINT:IF PRTFLG THEN PRINT #2,"":PRINT #2,"":PRINT #2,"Sites found:":PRINT #2,""
610 RESTORE:READ NENZ:LFFLG=10
620 FOR K=1 TO NENZ
630 READ ENZ$,CUT,NPAL
640 NAMFLG=1:F=0
650 FOR I=1 TO NPAL
660 R=1:J=1:READ PAL$
670 IF (R+1)*250>LENGTH THEN SEARCH$=SEQ$(R):GOTO 690
680 SEARCH$=SEQ$(R)+LEFT$(SEQ$(R+1),LEN(PAL$)-1)
690 P=INSTR(J,SEARCH$,PAL$)
700 IF P>0 THEN IF NAMFLG THEN NAMFLG=0:PRINT USING "\ \";ENZ$;:IF PRTFLG THEN PRINT #2,USING "\ \";ENZ$;
710 IF P>0 THEN IF F=10 THEN F=0:PRINT:PRINT " ";:IF PRTFLG THEN PRINT #2,"":PRINT #2," ";
720 IF P>0 THEN J=P+1:F=F+1:PRINT USING " #### ";(R-1)*250+P+CUT;:IF PRTFLG THEN PRINT #2,USING " #### ";(R-1)*250+P+CUT;:GOTO 690 ELSE GOTO 690
730 IF R*250
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.