10 MAXFILES=2 20 CLEAR 1024:DIM N$(19),V$(19),S%(19),T(19),ST(19) 30 HT$=CHR$(9) 40 ON ERROR GOTO 830 50 F$="":INPUT "Input file name";F$ 60 IF F$="" THEN MENU 70 ER%=0:OPEN F$ FOR INPUT AS 1 80 IF ER% THEN 50 90 ON ERROR GOTO 0 100 O$="":INPUT "Output file name";O$ 110 O%=0:IF O$="" OR O$=F$ THEN O%=-1:O$="temp$$" 120 OPEN O$ FOR OUTPUT AS 2 130 GOSUB 240:GOSUB 310 140 IF EOF(1) THEN 180 150 GOSUB 430:IF S$="" THEN 140 160 ON ST%+1 GOSUB 580,630,730 170 GOTO 140 180 IF NOT T% THEN GOSUB 630 190 CLOSE 200 IF NOT O% THEN MENU 210 IF INSTR(F$,".")=0 THEN F$=F$+".DO" 220 IF INSTR(O$,".")=0 THEN O$=O$+".DO" 230 KILL F$:NAME O$ AS F$:MENU 240 LINEINPUT#1,S$:PRINT#2,S$ 250 P%=1:N%=0 260 Q%=INSTR(P%,S$,HT$):IF Q%=0 THEN Q%=LEN(S$)+1 270 N$(N%)=MID$(S$,P%,Q%-P%):N%=N%+1 280 IF N%<20 AND Q%<=LEN(S$) THEN P%=Q%+1:GOTO 260 290 LINE INPUT#1,S$:PRINT#2,S$ 300 RETURN 310 S%=0 320 S$="":INPUT "Field";S$ 330 IF S$="" THEN 410 340 IF LEFT$(S$,1)<>"#" THEN 370 350 IF S$="#" THEN 400 360 II%=VAL(MID$(S$,2)):IF II%>=1 AND II%<=N% THEN S%=-1:S%(II%-1)=S%:GOTO 320:ELSE 400 370 FOR II%=0 TO N%-1 380 IF S$=N$(II%) THEN S%=-1:S%(II%)=S%:GOTO 320 390 NEXT II% 400 PRINT "???":GOTO 320 410 IF NOT S% THEN FOR II%=0 TO N%-1:S%(II%)=-1:NEXT II% 420 RETURN 430 LINEINPUT#1,S$ 440 ST%=0:P%=1:II%=0:IF S$="" OR S$="*" THEN 490 450 IF LEFT$(S$,1)="*" THEN ST%=(INSTR("tTsS",MID$(S$,2,1))+1)\2:IF ST% THEN 500 460 Q%=INSTR(P%,S$,HT$):IF Q%=0 THEN Q%=LEN(S$)+1 470 V$(II%)=MID$(S$,P%,Q%-P%):II%=II%+1 480 IF II%"," THEN VV$=VV$+MID$(V$,II%,1) 550 NEXT II% 560 V=VAL(VV$) 570 RETURN 580 FOR I1%=0 TO N%-1 590 IF S%(I1%) THEN V$=V$(I1%):GOSUB 520:T(I1%)=T(I1%)+V:ST(I1%)=ST(I1%)+V 600 NEXT I1% 610 T%=0 620 RETURN 630 S$="*T":IF S%(0) THEN S$="*T " 640 JJ%=0 650 FOR II%=0 TO N% 660 IF NOT S%(II%) THEN 690 670 IF JJ%