10 SUB BRESEQ 20 !---> 30 ON ERROR GOTO 240 40 DIM LNUM%(2000%),LBLS%(2000%) 50 IREC%,LRECL%,IFLGP%=0% 60 INPUT LINE #1,REC$ \ REC$=TRM$(REC$) 70 LENREC%=LEN(REC$) 80 LRECL%=LRECL%+1% 90 IF IFLGP%=1% GOTO 210 100 I%=1% \ IC%=ASCII(MID(REC$,1%,1%)) 110 UNTIL (IC%<>32%) AND (IC%<>9%) 120 I%=I%+1% \ IC%=ASCII(MID(REC$,I%,1%)) 130 NEXT 140 IF (IC%>57% OR IC%<48%) GOTO 1480 150 IREC%=IREC%+10% 160 LFT%=I% 170 UNTIL (IC%>57%) OR (IC%<48%) 180 I%=I%+1% \ IC%=ASCII(MID(REC$,I%,1%)) 190 NEXT 200 IBP2%=VAL(SEG$(REC$,LFT%,(I%-1%))) 210 LNUM%(LRECL%)=IBP2% \ LBLS%(LRECL%)=IREC% 220 IF '&'=MID(REC$,LENREC%,1%) THEN IFLGP%=1% ELSE IFLGP%=0% 230 GOTO 60 240 !-------------------------------------------------> 250 IF ERR<>11% GOTO 1520 260 RESUME 270 270 RESTORE #1 280 IREC%,IFLGP%=0% 290 FOR JREC%=1% TO LRECL% 300 INPUT LINE #1,REC$ \ REC$=TRM$(REC$) 310 LENREC%=LEN(REC$) 320 OUT$="" 330 I%=1% 340 IF IFLGP%=1% GOTO 410 350 IREC%=IREC%+10% 360 IC%=ASCII(MID(REC$,1%,1%)) 370 UNTIL ((IC%<>32%) AND (IC%<>9%) AND (IC%>57% OR IC%<48%)) 380 I%=I%+1% 390 IC%=ASCII(MID(REC$,I%,1%)) 400 NEXT 410 IF '&'=MID(REC$,LENREC%,1%) THEN IFLGC%=1% ELSE IFLGC%=0% 420 WHILE I%<= LENREC% 430 C$=MID(REC$,I%,1%) 440 IF (C$<>"'") AND C$<>'"' GOTO 570 450 QUOTE$=C$ \ OUT$=OUT$+C$ 460 I%=I%+1% 470 IF I%>LENREC% THEN PRINT "Unmatched quotes!" & \ PRINT REC$ \ GOTO 1050 490 C$=MID(REC$,I%,1%) 500 UNTIL C$=QUOTE$ 510 OUT$=OUT$+C$ \ I%=I%+1% 520 IF I%>LENREC% THEN PRINT "Unmatched quotes!" & \ PRINT REC$ \ GOTO 1050 540 C$=MID(REC$,I%,1%) 550 NEXT 570 IF C$<>'G' THEN 750 ELSE GOSUB 1130 580 IF C$<>'O' THEN 750 ELSE GOSUB 1200 590 IF C$<>'T' THEN 680 ELSE GOSUB 1130 600 IF C$<>'O' THEN 680 610 GOSUB 1250 620 IF IRGT%=0% THEN GOTO 980 630 GOSUB 1380 640 IF C$=' ' OR 9%=ASCII(C$) THEN GOSUB 1200 650 IF C$=',' THEN GOTO 610 660 GOTO 1030 680 IF C$<>'S' THEN 750 ELSE GOSUB 1130 690 IF C$<>'U' THEN 750 ELSE GOSUB 1130 700 IF C$<>'B' THEN 750 ELSE GOSUB 1250 710 IF IRGT%=0% THEN GOTO 980 720 GOSUB 1380 730 GOTO 1030 750 IF C$<>'T' THEN 820 ELSE GOSUB 1130 760 IF C$<>'H' THEN 820 ELSE GOSUB 1130 770 IF C$<>'E' THEN 820 ELSE GOSUB 1130 780 IF C$<>'N' THEN 820 ELSE GOSUB 1250 790 IF IRGT%<>0% THEN GOSUB 1380 800 GOTO 1030 820 IF C$<>'E' THEN 890 ELSE GOSUB 1130 830 IF C$<>'L' THEN 890 ELSE GOSUB 1130 840 IF C$<>'S' THEN 890 ELSE GOSUB 1130 850 IF C$<>'E' THEN 890 ELSE GOSUB 1250 860 IF IRGT%<>0% THEN GOSUB 1380 870 GOTO 1030 890 IF C$<>'R' THEN 1010 ELSE GOSUB 1130 900 IF C$<>'E' THEN 1010 ELSE GOSUB 1130 910 IF C$<>'S' THEN 1010 ELSE GOSUB 1130 920 IF C$<>'U' THEN 1010 ELSE GOSUB 1130 930 IF C$<>'M' THEN 1010 ELSE GOSUB 1130 940 IF C$<>'E' THEN 1010 ELSE GOSUB 1250 950 IF IRGT%<>0% THEN GOSUB 1380 960 GOTO 1030 980 ! 990 PRINT 'A syntax error exists! Where is the label?' 1000 PRINT REC$ 1010 ! 1020 OUT$=OUT$+C$ \ I%=I%+1% 1030 NEXT 1040 !--------------------------------------------------> 1050 IF IFLGP%=1% THEN PRINT #2," ";OUT$ & ELSE PRINT #2,LEFT(STR$(IREC%),6%);OUT$ 1070 IFLGP%=IFLGC% 1080 NEXT JREC% 1090 GOTO 1530 1100 ! 1110 !---> Resequencing subroutines. 1120 !-----------------------------------> 1130 ! 1140 OUT$=OUT$ +C$ 1150 I%=I%+1% 1160 IF I%<= LENREC% THEN C$=MID(REC$,I%,1%) & 1180 RETURN 1190 !-----------------------------> 1200 GOSUB 1130 1210 IC%=ASCII(C$) 1220 IF (IC%=9% OR IC%=32%) GOTO 1200 1230 RETURN 1240 !-----------------------------> 1250 LFT%,IRGT%=0% 1260 GOSUB 1200 1270 IF IC%<48% OR IC% >57% THEN RETURN 1280 LFT%=I% 1290 WHILE (IC%>47%) AND (IC%<58%) AND (I%<=LENREC%) 1300 I%=I%+1% 1310 C$=MID(REC$,I%,1%) 1320 IC%=ASCII(C$) 1330 NEXT 1340 IF I%=LENREC% THEN IRGT%=LENREC% ELSE IRGT%=I%-1% 1350 IBP2%=VAL(SEG$(REC$,LFT%,IRGT%)) 1360 RETURN 1380 ! 1390 FOR IK%=1% TO LRECL% 1400 IF IBP2%=LNUM%(IK%) GOTO 1430 1410 NEXT IK% 1420 PRINT "REF ERROR, ";REC$ 1430 OUT$=OUT$+EDIT$(STR$(LBLS%(IK%)),2%) 1440 RETURN 1450 RETURN 1460 ! 1470 !---__-----------------------> 1480 PRINT "Line number expected! " 1490 PRINT REC$ 1500 GOTO 210 1510 ! 1520 PRINT ERT$(ERR) 1530 ! 1540 SUBEND