1000  COM A$[1],B$[1],C$[72],D$[60],E$[72],F$[1],H$[72],I$[72]
1005  COM J$[30],K$[33],L$[30],M$[33],N$[10],O$[72],P$[72]
1010  COM Q$[52],S$[72],T$[72],W$[1],X$[72],Z$[72]
1015  COM A[30],T[30],C[10],W[5]
1020  REM <<< PROGRAM IDENTIFICATION HEADER >>>
1025  FILES *,*,*,*,*
1030  F9=5
1035  O$=""
1040  N$="0123456789"
1045  J$="ADJBLABOTBRECENCHECONDEFENTFIL"
1050  K$="FLAHEAHOLINDMARNEENEWODDOPEPAGPAP"
1055  L$="PAUREPSKISPASUPTABTEXTOPUND"
1060  Q$="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
1065  MAT A=ZER
1070  MAT C=ZER
1075  MAT W=ZER
1080  A[10]=A[11]=A[18]=A[19]=L=P=1
1085  A[1]=A[2]=A[4]=A[5]=3
1090  A[8]=A[9]=5
1095  A[13]=66
1100  A[14]=72
1105  L9=67
1110  A$="."
1115  B$="%"
1120  F$="!"
1125  H$=""
1130  P$="PAGE "
1135  W$="#"
1140  FOR I=1 TO 72
1145  Z$[I,I]=" "
1150  NEXT I
1155  D$=Z$[1,60]
1160  E=F=F2=F3=F4=F5=F6=Q1=Q2=Z0=Z3=Z4=0
1165  P0=-1
1170  I$=A$
1175  PRINT A$;
1180  ENTER 255,X,T$
1185  IF X=-256 THEN 1180
1190  I$[2]=T$
1195  PRINT 
1200  IF T$#"" THEN 1410
1205  IF F#F5 THEN 1220
1210  PRINT "A TEXT FILE MUST BE GIVEN"
1215  GOTO 1170
1220  F6=L=1
1225  IF A[25] THEN 1300
1230  GOSUB 9100
1300  IF  NOT A[23] OR A[25] THEN 1345
1305  ENTER 255,X,I$
1310  IF X=-256 THEN 1305
1315  A[23]=A[23]-1
1320  IF A[28] THEN 1330
1325  PRINT 
1330  A[28]=0
1335  IF I$[1,1]=A$ THEN 1390
1340  GOTO 1300
1345  IF  NOT A[27] THEN 1380
1350  IF TYP(F4)#1 THEN 1365
1355  READ #F4;X
1360  GOTO 1345
1365  READ #F4;I$
1370  A[27]=A[27]-1
1375  GOTO 1390
1380  GOSUB 7200
1385  IF I$="" THEN 1300
1390  E=0
1395  IF I$[1,1]#A$ THEN 1830
1400  IF A[25]#2 THEN 1410
1405  PRINT SPA((F-F5-1)*2-1);C[F];I$
1410  FOR A9=2 TO LEN(I$)
1415  IF I$[A9,A9]=";" THEN 1425
1420  NEXT A9
1425  C$=I$[2,A9-1]
1430  A=1
1435  GOSUB 2000
1440  IF A9=0 THEN 1450
1445  I$[2,A9]=""
1450  E=0
1455  T$=I$[2]
1460  GOSUB 9900
1465  I$[2]=T$
1470  IF I$#A$ THEN 1410
1475  I$=""
1480  IF Z3 THEN 1490
1485  GOTO F6+1 OF 1170,1300
1490  I$=X$
1495  Z3=0
1500  GOTO 1470
1800  I=F3
1805  F3=F
1810  F=I
1815  Z0=0
1820  MAT A=T
1825  GOTO 1300
1830  IF  NOT A[25] THEN 1850
1835  A[17]=(A[17]-1) MAX 0
1840  A[22]=(A[22]-1) MAX 0
1845  GOTO 1855
1850  GOSUB 5000
1855  A[16]=A[16]-1 MAX 0
1860  IF A[16] THEN 1300
1865  A[15]=0
1870  GOTO 1300
1875  C[F]=0
1880  GOSUB 7400
1885  GOSUB 2205
1890  F=F-1
1895  IF F>F5 THEN 1300
1900  Z1=Z0
1905  N=1000
1910  GOSUB 8400
1915  GOTO 9999
2000  T$=C$
2005  GOSUB 9900
2010  C$=T$
2015  IF C$="" THEN 4620
2020  S=0
2025  T$=""
2030  A=1
2035  T$[LEN(T$)+1]=C$[A,A]
2040  A=A+1
2045  IF C$[A]="" THEN 2055
2050  IF C$[A,A]#" " THEN 2035
2055  IF LEN(T$)<3 THEN 4500
2060  S$=T$
2065  T$[4]=""
2070  M=0
2075  M$=J$
2080  IF T$<K$[1,3] THEN 2110
2085  M=M+1
2090  M$=K$
2095  IF T$<L$[1,3] THEN 2110
2100  M=M+1
2105  M$=L$
2110  FOR I=1 TO LEN(M$)-1 STEP 3
2115  IF T$=M$[I,I+2] THEN 2130
2120  NEXT I
2125  GOTO 4500
2130  I=(I+2)/3
2135  GOTO M OF 2145,2150
2140  GOTO I OF 2155,2165,2190,2200,2215,2250,2275,2300,2480,2510
2145  GOTO I OF 2540,2620,2695,2730,2800,2890,3035,3090,3120,3355,3470
2150  GOTO I OF 3555,3565,3585,3615,3640,3655,3775,3845,3855
2155  Z=18
2160  GOTO 2515
2165  GOSUB 8100
2170  IF T$#"" THEN 2180
2175  T$=" "
2180  B$=T$[1,1]
2185  RETURN 
2190  A8=1
2195  GOTO 4655
2200  IF  NOT F6 THEN 6000
2205  IF O$="" THEN 2185
2210  GOTO 7000
2215  GOSUB 2200
2220  GOSUB 8100
2225  GOSUB 8000
2230  IF N0 AND N THEN 2240
2235  N=1
2240  A[22]=N
2245  RETURN 
2250  A[25]=1
2255  GOSUB 8100
2260  IF T$#"LIST" THEN 2270
2265  A[25]=2
2270  RETURN 
2275  GOSUB 8100
2280  IF LEN(T$)#1 THEN 6010
2285  I$[1,1]=T$
2290  A$=T$
2295  RETURN 
2300  IF  NOT F2 THEN 6040
2305  T$=C$[A+1]
2310  GOSUB 9900
2315  FOR I=1 TO LEN(T$)
2320  IF T$[I,I]="=" THEN 2340
2325  IF T$[I,I]=" " THEN 2340
2330  NEXT I
2335  GOTO 6010
2340  READ #F2,1
2345  E$=T$[1,I-1]
2350  T$=T$[I]
2355  IF T$[1,1]="=" THEN 2370
2360  T$=T$[2]
2365  GOTO 2355
2370  T$=T$[2]
2375  GOSUB 9900
2380  IF T$[1,1]=T$[LEN(T$),LEN(T$)] THEN 2420
2385  FOR I=A9 TO LEN(I$)
2390  IF T$[1,1]=I$[I,I] THEN 2405
2395  NEXT I
2400  GOTO 6010
2405  T$[LEN(T$)+1]=I$[A9,I-1]
2410  T$=T$[2]
2415  A9=I+1
2420  IF  END #F2 THEN 2450
2430  READ #F2;S$
2435  IF S$=E$ THEN 6020
2440  READ #F2;S$
2445  GOTO 2430
2450  S$=E$
2455  IF  END #F2 THEN 2470
2460  PRINT #F2;S$,T$, END 
2465  RETURN 
2470  E$="COMMAND"
2475  GOTO 6050
2480  GOSUB 8100
2485  GOSUB 8000
2490  IF N THEN 2500
2495  N=1
2500  A[23]=N
2505  RETURN 
2510  Z=19
2515  GOSUB 2205
2520  GOSUB 8100
2525  GOSUB 8200
2530  IF E THEN 6010
2535  RETURN 
2540  FOR J=1 TO 3
2545  GOSUB 8100
2550  IF T$="" THEN 2615
2555  IF LEN(T$)#1 THEN 2580
2560  GOSUB 8000
2565  IF N0 THEN 2600
2570  F$=T$
2575  GOTO 2610
2580  Z=20
2585  GOSUB 8200
2590  IF  NOT E THEN 2610
2595  GOTO 6010
2600  IF  NOT N THEN 6010
2605  A[21]=N
2610  NEXT J
2615  RETURN 
2620  FOR I=1 TO 3
2625  GOSUB 8100
2630  IF T$="" THEN 2690
2635  Z=6
2640  GOSUB 8200
2645  IF  NOT E THEN 2685
2650  E=0
2655  GOSUB 7300
2660  IF X=-1 THEN 2675
2665  A[7]=X
2670  GOTO 2685
2675  GOSUB 8300
2680  H$=T$
2685  NEXT I
2690  RETURN 
2695  GOSUB 2200
2700  GOSUB 8100
2705  GOSUB 8000
2710  IF N0 THEN 2720
2715  N=1
2720  A[27]=N
2725  RETURN 
2730  GOSUB 2200
2735  GOSUB 8100
2740  GOSUB 4640
2745  IF A[8]+N<A[17] THEN 6060
2750  A[15]=N
2755  IF T$="" THEN 2795
2760  GOSUB 9900
2765  IF T$[1,3]#"FOR" THEN 6010
2770  T$=T$[4]
2775  GOSUB 9900
2780  GOSUB 8000
2785  IF  NOT N OR  NOT N0 THEN 6010
2790  A[16]=N+1
2795  RETURN 
2800  FOR I=1 TO 2
2805  GOSUB 8100
2810  IF LEN(T$)=0 AND I=2 THEN 2885
2815  IF T$[1,4]#"LEFT" THEN 2850
2820  T$=T$[5]
2825  GOSUB 4625
2830  IF N+A[9] >= A[14] THEN 6060
2835  IF N+A[15]<A[17] THEN 6060
2840  A[8]=N
2845  GOTO 2880
2850  IF T$[1,5]#"RIGHT" THEN 6010
2855  T$=T$[6]
2860  GOSUB 4625
2865  IF A[8]+N >= A[14] THEN 6060
2870  A[9]=N
2875  L9=A[14]-N
2880  NEXT I
2885  RETURN 
2890  GOSUB 2200
2895  IF Z0 THEN 2930
2900  GOSUB 8100
2905  GOSUB 4640
2910  Y=N
2915  IF N <= A[13]-A[1]-A[2]-A[4]-A[5]-L THEN 3020
2920  IF N>A[13]-A[1]-A[2]-A[4]-A[5]-2 THEN 6210
2925  IF F3 AND  NOT Z0 THEN 2940
2930  A9=0
2935  GOTO 3065
2940  MAT  PRINT #F3,1;A
2945  IF  END #F3 THEN 3025
2950  GOSUB 8100
2955  IF T$="" THEN 2985
2960  IF T$[1,4]#"KEEP" THEN 6010
2965  T$=T$[5]
2970  GOSUB 4640
2975  GOTO 2985
2980  N=Y
2985  T$=I$
2990  FOR I=1 TO N
2995  GOSUB 7200
3000  PRINT #F3;I$, END 
3005  NEXT I
3010  I$=T$
3015  Z0=1
3020  RETURN 
3025  E$="NEED"
3030  GOTO 6050
3035  GOSUB 2200
3040  GOSUB 8100
3045  GOSUB 8000
3050  IF N0=0 THEN 3060
3055  P0=N
3060  IF L=1 THEN 3075
3065  N=1000
3070  GOTO 8400
3075  P=P*(P0=-1)+P0*(P0#-1)
3080  P0=-1
3085  RETURN 
3090  GOSUB 2200
3095  GOSUB 3060
3100  IF P/2#INT(P/2) THEN 3115
3105  GOSUB 3065
3110  GOTO 3100
3115  RETURN 
3120  IF F#F5 THEN 6000
3125  GOSUB 8100
3130  IF T$="" THEN 6010
3135  IF T$[1,LEN(T$) MIN 9]="HOLD FILE" THEN 3195
3140  IF T$[1,LEN(T$) MIN 9]="NEED FILE" THEN 3175
3145  IF T$[1,LEN(T$) MIN 12]#"COMMAND FILE" THEN 6010
3150  GOSUB 3220
3155  D$[43,42+LEN(T$)]=T$
3160  F2=F5=F
3165  IF  END #F2 THEN 3345
3170  RETURN 
3175  GOSUB 3220
3180  D$[49,48+LEN(T$)]=T$
3185  F3=F5=F
3190  RETURN 
3195  GOSUB 3220
3200  D$[55,54+LEN(T$)]=T$
3205  F4=F5=F
3210  IF  END #F4 THEN 3335
3215  RETURN 
3220  T$=T$[I]
3225  T$=T$[2]
3230  IF T$="" THEN 6010
3235  IF T$[1,1]=" " THEN 3225
3240  FOR I=1 TO LEN(T$)
3245  IF T$[I,I]="=" THEN 3260
3250  NEXT I
3255  GOTO 6010
3260  T$=T$[I+1]
3265  GOSUB 9900
3270  IF T$="" THEN 6010
3275  E=X=0
3280  F=F+1
3285  ASSIGN T$,F,X
3290  IF  NOT X THEN 3215
3295  IF X>1 THEN 3325
3300  GOSUB 2205
3305  O$="WARNING: FILE "
3310  O$[LEN(O$)+1]=T$
3315  O$[LEN(O$)+1]=" IS BEING ACCESSED BY ANOTHER USER"
3320  GOTO 6600
3325  F=F-1
3330  GOTO 6070
3335  E$="HOLD"
3340  GOTO 6050
3345  E$="COMMAND"
3350  GOTO 6050
3355  FOR I=1 TO 4
3360  GOSUB 8100
3365  IF T$="" THEN 3465
3370  Z=10
3375  GOSUB 8200
3380  IF  NOT E THEN 3460
3385  E=0
3390  X=2
3395  GOSUB 7315
3400  IF X=-1 THEN 3415
3405  A[11]=X
3410  GOTO 3460
3415  IF T$#"TOP" THEN 3430
3420  A[12]=2*(A[12] AND F6)
3425  GOTO 3460
3430  IF T$#"BOTTOM" THEN 3445
3435  A[12]=1+2*( NOT A[12] AND F6)
3440  GOTO 3460
3445  GOSUB 8300
3450  IF E THEN 3465
3455  P$=T$
3460  NEXT I
3465  RETURN 
3470  FOR I=1 TO 2
3475  GOSUB 8100
3480  IF LEN(T$)=0 AND I=2 THEN 3550
3485  IF T$[1,6]#"LENGTH" THEN 3515
3490  T$=T$[7]
3495  GOSUB 4625
3500  IF N<A[1]+A[2]+A[4]+A[5]+2 THEN 6060
3505  A[13]=N
3510  GOTO 3545
3515  IF T$[1,5]#"WIDTH" THEN 6010
3520  T$=T$[6]
3525  GOSUB 4625
3530  IF A[8]+A[9] >= N THEN 6060
3535  A[14]=N
3540  L9=N-A[9]
3545  NEXT I
3550  RETURN 
3555  A[24]=1
3560  RETURN 
3565  GOSUB 2200
3570  IF A[25] THEN 3580
3575  READ #F,1
3580  RETURN 
3585  GOSUB 2200
3590  GOSUB 8100
3595  GOSUB 8000
3600  IF N THEN 3610
3605  N=1
3610  GOTO 8400
3615  GOSUB 8100
3620  GOSUB 8000
3625  IF  NOT N THEN 6010
3630  A[3]=N
3635  RETURN 
3640  GOSUB 2205
3645  A[28]=1
3650  RETURN 
3655  GOSUB 2205
3660  GOSUB 8100
3665  IF T$#"" THEN 3680
3670  MAT W=ZER
3675  RETURN 
3680  GOSUB 8000
3685  IF N0 THEN 3725
3690  IF LEN(T$)#1 THEN 3705
3695  W$=T$
3700  GOTO 3760
3705  Z=26
3710  GOSUB 8200
3715  IF E THEN 6010
3720  GOTO 3760
3725  IF N <= 0 OR N>A[14] THEN 6010
3730  FOR I=4 TO 1 STEP -1
3735  IF W[I]=0 THEN 3750
3740  IF W[I]<N THEN 3755
3745  W[I+1]=W[I]
3750  NEXT I
3755  W[I+1]=N
3760  GOSUB 8100
3765  IF T$#"" THEN 3680
3770  RETURN 
3775  IF F6 OR F=F5 THEN 3785
3780  F=F-1
3785  GOSUB 7400
3790  GOSUB 2205
3795  IF F=F9 THEN 6030
3800  GOSUB 8100
3805  GOSUB 9900
3810  D$[(F-F5)*6+1,(F-F5)*6+7]=T$
3815  GOSUB 3265
3820  IF E THEN 3840
3825  IF  NOT A[25] THEN 3835
3830  PRINT SPA((F-F5-1)*2);T$
3835  IF  END #F THEN 1875
3840  RETURN 
3845  A8=4
3850  GOTO 4655
3855  GOSUB 2200
3860  GOSUB 8100
3865  GOSUB 4640
3870  IF A[8]+A[15]<N THEN 6060
3875  A[17]=N
3880  RETURN 
4500  IF S THEN 4530
4505  T$=C$
4510  GOSUB 4740
4515  C$=T$
4520  S=1
4525  GOTO 2025
4530  IF  NOT F2 THEN 6000
4535  READ #F2,1
4540  T$=C$[1,A-1]
4545  GOSUB 4740
4550  IF  END #F2 THEN 6000
4555  READ #F2;S$
4560  IF S$=T$ THEN 4575
4565  READ #F2;S$
4570  GOTO 4555
4575  X$=I$
4580  X$[2,A9]=""
4585  A9=0
4590  READ #F2;I$
4595  IF I$[1,1]=A$ THEN 4615
4600  S$=A$
4605  S$[2]=I$
4610  I$=S$
4615  Z3=1
4620  RETURN 
4625  GOSUB 9900
4630  IF T$[1,1]#"=" THEN 6010
4635  T$=T$[2]
4640  GOSUB 8000
4645  IF N0=0 THEN 6010
4650  RETURN 
4655  FOR I=1 TO 2
4660  X=3*(A8=1)+1
4665  GOSUB 8100
4670  IF T$="" THEN 4735
4675  IF T$[1,1]#"A" THEN 4705
4680  T$=T$[2]
4685  GOSUB 4625
4690  IF A[13]<N+A[A8+1]+A[X]+A[X+1]+2 THEN 6060
4695  A[A8]=N
4700  GOTO 4730
4705  IF T$[1,1]#"B" THEN 6010
4710  T$=T$[2]
4715  GOSUB 4625
4720  IF A[13]<A[A8]+N+A[X]+A[X+1]+2 THEN 6060
4725  A[A8+1]=N
4730  NEXT I
4735  RETURN 
4740  FOR I=1 TO LEN(T$)
4745  FOR J=1 TO 26
4750  IF T$[I,I]=Q$[J,J] THEN 4765
4755  NEXT J
4760  GOTO 4770
4765  T$[I,I]=Q$[J+26,J+26]
4770  NEXT I
4775  RETURN 
5000  IF LEN(O$) >= L9 THEN 5395
5005  IF  NOT A[22] THEN 5075
5010  O$=Z$[1,A[14]]
5015  IF I$="" THEN 5065
5020  IF I$[1,1]#" " THEN 5035
5025  I$=I$[2]
5030  GOTO 5015
5035  IF I$[LEN(I$)]#" " THEN 5050
5040  I$[LEN(I$)]=""
5045  GOTO 5035
5050  IF LEN(I$) <= A[14]-A[8]-A[9] THEN 5060
5055  I$[A[14]-A[8]-A[9]+1]=""
5060  O$[(INT((A[14]-A[8]-A[9]-LEN(I$))/2)+A[8]+1) MAX 1]=I$
5065  A[22]=A[22]-1 MAX 0
5070  GOTO 2205
5075  IF O$#"" THEN 5210
5080  O$=""
5085  IF A[8]+A[15]=0 THEN 5095
5090  O$=Z$[1,A[8]+A[15]]
5095  IF  NOT A[26] THEN 5210
5100  FOR I=1 TO LEN(I$)
5105  IF I$[I,I]=W$ THEN 5120
5110  NEXT I
5115  GOTO 5210
5120  IF I>L9-LEN(O$) THEN 5200
5125  IF I=1 THEN 5140
5130  O$[LEN(O$)+1]=I$[1,I-1]
5135  IF I=LEN(I$)+1 THEN 5200
5140  I$=I$[I+1]
5145  IF I$="" THEN 5490
5150  IF LEN(O$)=L9 THEN 5200
5155  FOR J=1 TO 5
5160  IF W[J]>LEN(O$) THEN 5175
5165  NEXT J
5170  GOTO 5200
5175  O$[LEN(O$)+1]=Z$[LEN(O$)+1,W[J]-1]
5180  FOR I=1 TO LEN(I$)
5185  IF I$[I,I]=W$ THEN 5120
5190  NEXT I
5195  GOTO 5120
5200  I$=""
5205  GOTO 5490
5210  IF  NOT A[17] THEN 5245
5215  O$[LEN(O$)-A[17]+1]=I$[1,LEN(I$) MIN A[8]]
5220  I$=""
5225  A[17]=0
5230  IF LEN(O$) >= A[8]-A[15] THEN 5240
5235  O$[LEN(O$)+1]=Z$[1,A[8]-A[15]-LEN(O$)]
5240  RETURN 
5245  IF  NOT A[19] THEN 5380
5250  T1=(L9-LEN(O$)) MIN LEN(I$)
5255  IF T1 <= 0 THEN 5395
5260  IF I$[T1+1]="" THEN 5325
5265  IF I$[T1,T1]=" " THEN 5325
5270  IF I$[T1+1,T1+1]=" " THEN 5325
5275  FOR I=T1 TO 1 STEP -1
5280  IF I$[I,I]=" " THEN 5320
5285  NEXT I
5290  IF O$#Z$[1,LEN(O$)] THEN 5340
5295  O$[LEN(O$)+1]=I$[1,T1-1]
5300  O$[LEN(O$)+1]="-"
5305  I$=I$[T1]
5310  GOSUB 6240
5315  GOTO 5495
5320  T1=I
5325  O$[LEN(O$)+1]=I$[1,T1]
5330  I$=I$[T1+1]
5335  IF I$="" THEN 5360
5340  IF I$[1,1]#" " THEN 5355
5345  I$=I$[2]
5350  GOTO 5335
5355  IF I$#"" THEN 5395
5360  IF O$[LEN(O$)]=" " THEN 5500
5365  IF LEN(O$)=L9 THEN 5500
5370  O$[LEN(O$)+1]=" "
5375  GOTO 5500
5380  X=LEN(I$) MIN (A[14]-A[9]-LEN(O$))
5385  O$[LEN(O$)+1]=I$[1,X]
5390  I$=I$[X+1]
5395  IF O$="" THEN 5495
5400  IF O$[LEN(O$),LEN(O$)]#" " THEN 5415
5405  O$[LEN(O$)]=""
5410  GOTO 5395
5415  IF LEN(O$) <= L9 THEN 5430
5420  GOSUB 6220
5425  GOTO 5495
5430  IF  NOT A[18] OR LEN(O$)=L9 THEN 5490
5435  F0=0
5440  FOR I=LEN(O$)-1 TO A[8]+A[15]+1 STEP -1
5445  IF O$[I,I]#" " THEN 5475
5450  T$=" "
5455  T$[2]=O$[I]
5460  O$[I]=T$
5465  F0=1
5470  IF LEN(O$)=L9 THEN 5490
5475  NEXT I
5480  IF F0 THEN 5435
5485  GOSUB 6250
5490  GOSUB 7000
5495  IF I$#"" THEN 5000
5500  RETURN 
6000  E$="INVALID COMMAND"
6005  GOTO 6400
6010  E$="INVALID PARAMETER"
6015  GOTO 6400
6020  E$="DUPLICATE COMMAND NAME"
6025  GOTO 6400
6030  E$="FILE NESTING CAPACITY EXCEEDED"
6035  GOTO 6400
6040  E$="COMMAND FILE NOT OPENED"
6045  GOTO 6400
6050  E$[LEN(E$)+1]=" FILE OVERFLOW"
6055  GOTO 6400
6060  E$="LIMITS EXCEEDED"
6065  GOTO 6400
6070  E$="FILE ERROR : CODE = "
6075  GOSUB 9600
6080  E$[LEN(E$)+1]=T$
6085  GOTO 6400
6200  E$="POSITION PRECEDES COLUMN POSITION 1"
6205  GOTO 6500
6210  E$="'NEED' EXCEEDS PAGE SIZE"
6215  GOTO 6500
6220  E$="RIGHT MARGIN EXCEEDED"
6225  GOTO 6500
6230  E$="LINE WIDTH EXCEEDED"
6235  GOTO 6500
6240  E$="LINE CANNOT BE FILLED"
6245  GOTO 6500
6250  E$="LINE CANNOT BE ADJUSTED"
6255  GOTO 6500
6400  E=1
6405  GOSUB 2205
6410  O$="*** "
6415  O$[LEN(O$)+1]=C$
6420  IF F=F5 THEN 6455
6425  O$[LEN(O$)+1]=" IN FILE "
6430  O$[LEN(O$)+1]=D$[(F-F5-1)*6+1,(F-F5-1)*6+7]
6435  O$[LEN(O$)+1]=" STRING "
6440  X=C[F]
6445  GOSUB 9600
6450  O$[LEN(O$)+1]=T$
6455  GOSUB 6600
6500  GOSUB 2205
6505  O$="*** "
6510  O$[LEN(O$)+1]=E$
6515  GOSUB 6600
6520  IF E AND  NOT A[25] AND F6 THEN 9999
6525  RETURN 
6600  PRINT O$
6606  O$=""
6612  IF  NOT F6 THEN 7235
6618  N=1
6624  GOTO 8410
7000  IF B$=" " THEN 7025
7005  FOR I=1 TO LEN(O$)
7010  IF O$[I,I]#B$ THEN 7020
7015  O$[I,I]=" "
7020  NEXT I
7025  IF Q1=0 AND Q2=0 THEN 7040
7030  O$[LEN(O$)+1]=Z$[LEN(O$)+1,LEN(O$) MAX A[14]-A[9]+2]
7035  O$[LEN(O$)+1 MIN A[14]]=F$
7040  IF  NOT A[28] THEN 7060
7045  PRINT O$'13;
7050  A[28]=0
7055  GOTO 7065
7060  PRINT O$
7065  O$=""
7070  Q2=Q1
7075  N=A[3]
7080  GOTO 8410
7200  IF TYP(F)#1 THEN 7215
7205  READ #F;X
7210  GOTO 7200
7215  READ #F;I$
7220  C[F]=C[F]+1
7225  Q1=A[20] OR A[21]
7230  A[21]=(A[21]-1) MAX 0
7235  RETURN 
7300  X=3
7305  IF T$[1,7]="OPPOSED" THEN 7345
7310  X=X-1
7315  IF T$[1,6]="FACING" THEN 7345
7320  X=X-1
7325  IF T$[1,6]="MARGIN" THEN 7345
7330  X=X-1
7335  IF T$[1,6]="CENTER" THEN 7345
7340  X=X-1
7345  RETURN 
7400  IF LEN(O$)=0 THEN 7415
7405  IF O$=Z$[1,LEN(O$)] THEN 7415
7410  GOTO 5395
7415  RETURN 
8000  N=N0=0
8005  GOSUB 9900
8010  FOR I1=1 TO 10
8015  IF T$[1,1]=N$[I1,I1] THEN 8030
8020  NEXT I1
8025  RETURN 
8030  N=N*10+I1-1
8035  N0=1
8040  T$=T$[2]
8045  GOTO 8010
8100  T$=""
8105  IF C$[A]="" THEN 8150
8110  IF C$[A,A]="," THEN 8120
8115  IF C$[A,A]#" " THEN 8130
8120  A=A+1
8125  GOTO 8105
8130  T$[LEN(T$)+1]=C$[A,A]
8135  A=A+1
8140  IF C$[A]="" THEN 8150
8145  IF C$[A,A]#"," THEN 8130
8150  RETURN 
8200  IF T$[1,2]#"ON" THEN 8215
8205  A[Z]=1
8210  RETURN 
8215  IF T$[1,3]#"OFF" THEN 8230
8220  A[Z]=0
8225  RETURN 
8230  E=1
8235  RETURN 
8300  FOR T0=2 TO LEN(T$)
8305  IF T$[1,1]=T$[T0,T0] THEN 8320
8310  NEXT T0
8315  GOTO 6010
8320  T$=T$[2]
8325  T$[LEN(T$)]=""
8330  RETURN 
8400  IF  NOT N OR A[25]=1 THEN 8430
8405  PRINT 
8410  L=L+1
8415  IF L>A[13]-A[1]-A[2]-A[4]-A[5]-2 THEN 8435
8420  N=N-1
8425  IF N>0 THEN 8405
8430  RETURN 
8435  L=1
8440  GOTO 9000
9000  X=2
9005  S$=""
9010  PRINT LIN(A[1]);
9015  IF  NOT A[10] OR  NOT A[12] OR A[12]=3 THEN 9060
9020  GOSUB 9500
9025  S$=S$[1 MAX LEN(S$)-A[14]+A[8]+A[9]+1]
9030  X=A[8]+1
9035  IF A[11]=2 AND P/2=INT(P/2) THEN 9055
9040  X=A[8]+INT(((A[14]-A[8]-A[9]-LEN(S$)) MAX 1)/2)+1
9045  IF  NOT A[11] THEN 9055
9050  X=A[14]-A[9]-LEN(S$)+1
9055  X=X MAX 1
9060  PRINT TAB(X-1);S$
9065  P=(P+1)*(P#0)
9070  IF A[12]<2 THEN 9080
9075  A[12]=A[12]-2
9080  PRINT LIN(A[2]);
9085  IF  NOT A[24] THEN 9100
9090  ENTER 255,X,S$
9095  IF X=-256 THEN 9090
9100  IF P0=-1 THEN 9115
9105  P=P0
9110  P0=-1
9115  PRINT LIN(A[4]);
9120  O$=Z$[1,A[14]-A[9]]
9125  IF  NOT A[6] AND  NOT A[10] THEN 9310
9130  S$=""
9135  Z1=0
9140  IF P/2=INT(P/2) THEN 9150
9145  Z1=1
9150  IF  NOT A[10] OR A[12] THEN 9160
9155  GOSUB 9500
9160  IF  NOT (A[6] OR LEN(H$)) THEN 9240
9165  T$=H$
9170  IF  NOT A[10] OR A[12] THEN 9195
9175  IF  NOT (A[7]=A[11] OR (Z1 AND (A[7]+A[11]=3 AND A[7]#3))) THEN 9195
9180  T$[LEN(T$)+1]=" "
9185  T$[LEN(T$)+1]=S$
9190  Z4=1
9195  T$=T$[1 MAX LEN(T$)-A[14]+A[8]+A[9]+1]
9200  IF A[7] THEN 9220
9205  X=A[8]+1+(INT((A[14]-A[8]-A[9]-LEN(T$))/2) MAX 0)
9210  O$[X,X+LEN(T$)-1]=T$
9215  GOTO 9240
9220  IF (A[7]=2 AND  NOT Z1) OR (A[7]=3 AND (A[11]#2 OR Z1)) THEN 9235
9225  O$[LEN(O$)-LEN(T$)+1]=T$
9230  GOTO 9240
9235  O$[A[8]+1,A[8]+LEN(T$)]=T$
9240  IF Z4=1 OR  NOT A[10] OR A[12] THEN 9290
9245  S$=S$[1 MAX LEN(S$)-A[14]+A[8]+A[9]+1]
9250  IF A[11] THEN 9270
9255  X=A[8]+1+(INT((A[14]-A[8]-A[9]-LEN(S$))/2) MAX 0)
9260  O$[X,X+LEN(S$)-1]=S$
9265  GOTO 9290
9270  IF A[11]=2 AND  NOT Z1 THEN 9285
9275  O$[LEN(O$)-LEN(S$)+1]=S$
9280  GOTO 9290
9285  O$[A[8]+1,LEN(S$)+A[8]]=S$
9290  FOR I=LEN(O$) TO 1 STEP -1
9295  IF O$[I,I]#" " THEN 9315
9300  O$[I]=""
9305  NEXT I
9310  O$=" "
9315  PRINT O$
9320  Z4=0
9325  PRINT LIN(A[5]);
9330  O$=""
9335  IF  NOT Z0 THEN 9400
9340  MAT T=A
9345  IF I$[1,1]#A$ THEN 9370
9350  IF  NOT A9 THEN 9365
9355  I$[2,A9]=""
9360  A9=0
9365  PRINT #F3;I$
9370  I=F
9375  F=F3
9380  F3=I
9385  Z0=0
9390  MAT  READ #F,1;A
9395  IF  END #F THEN 1800
9400  RETURN 
9500  X=P
9505  GOSUB 9600
9510  S$=P$
9515  IF  NOT P THEN 9525
9520  S$[LEN(S$)+1]=T$
9525  RETURN 
9600  T$=""
9605  S$=""
9610  X=X/10
9615  Y=(X-INT(X))*10
9620  S$=N$[Y+1,Y+1]
9625  S$[2]=T$
9630  T$=S$
9635  X=INT(X)
9640  IF X THEN 9610
9645  RETURN 
9900  IF T$="" THEN 9920
9905  IF T$[1,1]#" " THEN 9920
9910  T$=T$[2]
9915  GOTO 9900
9920  RETURN 
9999  END 
