Back to Main page.
Back to Main tapes page.
1000  COM A[5,32],B[2,17],C[2],J[2],K[2,2],I,E,T,I$[255],Q1,F,W5,T$[4]
1010  COM P[2],D$[140],X5,U[2,2],A,M1,B,G1,N,F2,R[9],D1,D2,Q,G0,W,Y,P1
1020  COM A$[72],B$[72],C$[12],E$[12],M$[72],P$[10],H[6],R,R1,D9,U,G,P
1030  COM X,S$[11],H$[11],Y$[11],N$[10],R$[11],Z,K,L,R0,S5,C,G5,V,D3,J
1040  DIM E[20],Z[5,32],F[9],G[2],L[28],I[2],S[2]
1050  FILES MPROPS.B951
1060  IF  NOT LEN(C$) THEN 1120
1070  MAT Z=A
1080  GOTO (23-W MAX 0)+(T=2) OF 2360,3950,3140,4090,3270,3270,5530,4230,4520,3990
1090  GOTO 2*(C[I]<0 OR D1) MAX (D9#0 AND T=I) OF 1590,1160
1100  GOSUB 1930
1110  W=W*(T#I)
1120  CHAIN Z,"MNOPLY.B951"
1130  PRINT '7;
1140  GOTO 1120
1150  REM ***** MORTGAGE PROPERTY - SELLHOUSES *****
1160  C=D9=V=0
1170  DEF FNC(Z)= NOT A[2,O+Z]*(A[4,O+Z]=I)
1180  MAT E=ZER
1190  READ #I,I
1200  FOR Y=I TO 40
1210  READ #I;A$,B,E1,H[I],H[2],H[3],H[4],H[5],H[6],H,G,M,O
1220  IF  NOT G OR O#I AND O/3#INT(O/3) THEN 1240
1230  E[G]=FNC(0)+FNC(I)+FNC(2)*(M/G=3)
1240  IF B>3 OR A[3,O] OR  NOT A[2,O] AND A[3,O] OR A[4,O]#I THEN 1330
1250  FOR Z=I+(B=3) TO 3+(B#3)+2*(B=I)
1260  IF A[2,O]#Z-I THEN 1320
1270  V=((H MAX H*5*(Z=6))/2/(A[5,O]-H[I]*(Z=5 AND B=I)-H[Z-(A[2,O]#0)]*(Z<5 AND B=I AND Z#I)))*(A[2,O]#0)
1280  V=V+(E1/2/A[5,O])* NOT (A[2,O]+A[3,O])
1290  IF V= 0 THEN 1100
1560  NEXT X
1570  GOTO 1100
1580  REM **** BUILD HOUSES - UNMORTGAGE PROPERTY *****
1590  S=I
1600  GOSUB 1620
1610  GOTO 1820
1620  C=V=100
1630  MAT E=ZER
1640  DEF FND(X)=A[I,O+X]* NOT A[3,O+X]
1650  READ #I,I
1660  FOR Y=I TO 40
1670  READ #I;A$,B,E1,H[I],H[2],H[3],H[4],H[5],H[6],H,G1,M,O
1680  IF B>3 OR A[4,O]#S OR A[2,O]=5 OR  NOT (A[I,O]+A[2,O]+A[3,O]) OR  NOT A[3,O] AND B>I THEN 1760
1690  V=((E1/2+E1*.1)/(A[5,O]*(7*(B=3) MAX I)))*A[3,O]+(H/H[A[2,O]+2])*(A[2,O]<5 AND B=I)
1700  GOTO (V>C OR B=I AND A[I,O] AND W5<0)*2 MAX (B>I OR A[3,O]) OF 1740,1760
1710  IF O#I AND O/3#INT(O/3) THEN 1730
1720  E[G1]=FND(0)+FND(I)+FND(2)*(M/G1=3)
1730  IF E[G1]#M/G1 THEN 1760
1740  C=V+C* NOT V
1750  N=Y
1760  NEXT Y
1770  IF C=100 THEN 1100
1780  READ #I,I
1790  ADVANCE #I;(N-1)*13,Z
1800  READ #I;A$,B,E1,H[I],H[2],H[3],H[4],H[5],H[6],H,G1,M,N
1810  RETURN 
1820  GOTO (B=I)+2* NOT A[3,N]-I OF 1100,1880
1830  IF C[T]I) OF 2330,2320
2220  Y=Y+(5-A[2,N])*(B=I AND A[I,N]+A[3,N])
2230  IF N#I AND N/3#INT(N/3) THEN 2320
2240  G1=FNB(0)+FNB(I)+FNB(2)*(M/G=3)
2250  Z=A[2,N]+A[2,N+I]+A[2,N+2]*(M/G=3)-5*G1
2260  FOR X=0 TO (M/G-I)*A[I,N]*(B1=I)
2270  IF FNB(X) THEN 2300
2280  A[2,N+X]=INT(Z/(M/G-X-G1))
2290  Z=Z-A[2,N+X]
2300  G1=(G1-FNB(X))MAX 0
2310  NEXT X
2320  A[5,N]=(H[A[2,N]+I]+H[I]*A[I,N]* NOT A[2,N])*(B1=I)+H[A[I,N]+(B1=3) MAX I]*(B1>I)
2330  NEXT S
2340  D9=Y
2350  RETURN 
2360  IF  END #I THEN 1120
2370  B1=POS(M$,"-")+I
2380  READ #I,15;A$,H,D2,S$,H$,E$,Y$,I$,B,E1
2390  IF POS(M$[I,4],"*") THEN 4990
2400  IF B1=I AND W#23 OR W>31 AND  NOT POS(M$,".") OR  NOT Y AND (W=25 OR W=26) THEN 2720
2410  GOTO (W-22)*(W<32) OF 3000,2900,2580,2740,2760,2780,2800,2820,2840
2420  RESTORE 2990
2440  FOR X=I TO 6
2450  READ T$
2460  IF POS(M$,T$) THEN 2490
2470  NEXT X
2480  GOTO 2720
2490  Y=(Y MIN INT(LEN(I$)/14+I))
2500  IF (Y-I)*14-13>LEN(I$) OR  NOT POS(M$,"/") THEN 2720
2510  I$[Y*14-13,Y*14-3]=M$[B1,B1+5+5*(POS(M$,".")#0) MIN (POS(M$,"/")-I MAX I)]
2520  I$[Y*14-T,Y*14]="OE2"
2530  CONVERT X TO I$[Y*14-I,Y*14-I]
2540  I$[Y*14-T,Y*14-T]=I$[Y*14-T+ NOT G1,Y*14-T+ NOT G1]
2550  SYSTEM M$,"TIM"
2560  T$[I,4]=M$
2570  GOTO 2950
2580  ASSIGN S$,I,Z,'10'13"`"
2600  IF  NOT Z THEN 2630
2610  PRINT "SGF FILE MISSING."
2620  GOTO 1120
2630  IF  END #I THEN 2690
2640  LOCK #I
2650  PRINT #I,(Y*2)-I
2660  UNLOCK #I
2670  PRINT "RECORD #"(Y*2)-I"DELETED"
2680  GOTO 1120
2690  CONVERT Y TO A$
2700  PRINT "RECORD #"A$" OUT OF RANGE."
2710  GOTO 1120
2720  PRINT "ILLEGAL FORMAT:  "M$
2730  GOTO 1120
2740  I$[Y*14-13 MIN LEN(I$)]=I$[(Y+I)*14-13 MIN LEN(I$)]
2750  GOTO 2950
2760  D2=Y
2770  GOTO 2950
2780  S$[I,11]=M$[B1]
2790  GOTO 2850
2800  H$[I,11]=M$[B1]
2810  GOTO 2850
2820  E$[I,11]=M$[B1]
2830  GOTO 2850
2840  Y$[I,11]=M$[B1]
2850  ASSIGN M$[B1],I,Z
2860  ASSIGN "MPROPS.B951",I,Z
2870  IF  NOT Z OR Z<3 AND (W=29 OR W=30) THEN 2950
2880  PRINT "NO SUCH FILE AS "'34M$[B1]'34"."
2890  GOTO 2950
2900  A$=M$[B1]
2910  IF  NOT LEN(A$) THEN 2720
2920  FOR X=I TO LEN(A$)
2930  A$[X,X]=CHR$(NUM(A$[X])+X)
2940  NEXT X
2950  LOCK #I
2960  PRINT #I,15;A$,H,D2,S$,H$,E$,Y$,I$,B,E1
2970  UNLOCK #I
2980  GOTO 1120
2990  DATA "PRI-","PRO-","LOC-","UNR-","MWA-","SWA-","CRE-","CLE-","LEN-","CHA-"
3000  A$="  SUCUNSNATONE"
3010  PRINT LIN(-I);
3020  FOR X=I MAX Y TO LEN(I$)/14
3030  CONVERT I$[X*14-I,X*14-I] TO V
3040  RESTORE 
3050  FOR Z=I TO V
3060  READ B$
3070  NEXT Z
3080  CONVERT I$[X*14,X*14] TO V
3090  V=V MAX (NUM(I$[X*14-T])=79)*3
3100  PRINT X;B$;I$[X*14-13,X*14-3];TAB(22);"["A$[(V+I)*3,(V+I)*3+T]"]"
3110  NEXT X
3120  PRINT LIN(-I)"SGF FILE = "S$;LIN(I)"HFL FILE = "H$;LIN(I)"RFL FILE = "R$;LIN(I)"SYF FILE = "Y$;LIN(I)"SGD ="D2;LIN(I)"GAMES WON ="E1;LIN(I)"GAMES LOST ="B;LIN(-T)
3130  GOTO 1120
3140  READ #I,15
3150  IF  END #I THEN 3190
3160  IF TYP(I)=I THEN 3190
3170  READ #I,15;A$
3180  GOTO 1120
3190  IF  NOT POS(M$,"*") THEN 2720
3200  M$=M$[POS(M$,"*")+I]
3210  FOR X=I TO LEN(M$)
3220  M$[X,X]=CHR$(NUM(M$[X])+X)
3230  NEXT X
3240  LOCK #I
3250  PRINT #I,15;M$,0,0,'3,'3,'3,'3,'3,0,0
3260  GOTO 1120
3270  ASSIGN S$,I,Z,'10'13"`"
3280  IF Z THEN 2610
3290  GOTO (W-17)*(LEN(P$) AND  NOT POS(M$,"/NP")) OF 3650,1120
3300  SYSTEM Y,"ECH-OFF"
3310  PRINT "PASSWORD:  ";
3320  LINPUT I$
3330  UNLOCK #I
3340  PRINT '13'0;
3350  IF I$="" THEN 3530
3360  P$=I$[I,LEN(I$) MIN 10]
3370  P$=UPS$(P$)
3380  PRINT '13'0;
3390  IF W=18 THEN 3570
3400  IF  END #I THEN 3480
3410  FOR X=I TO 32767 STEP T
3420  READ #I,X
3430  GOTO TYP(-I)-T OF 3480,3470
3440  READ #I;U,A,C$,M$,B$,X2,X3,R,R1,Y,Y,Y,G,H
3450  IF H AND  NOT POS(T$,B$) THEN 3470
3460  IF M$=P$ THEN 3510
3470  NEXT X
3480  PRINT "ILLEGAL ACCESS"
3490  C$=""
3500  GOTO 3300
3510  X5=X
3520  MAT  READ #I;A,B,C,J,K,P,R,U
3530  PRINT '13;
3540  SYSTEM Z,"ECHO-ON"
3550  GOTO 1120
3560  REM *** STORE GAME ***
3570  PRINT "CONFIRM:  ";
3580  LINPUT I$
3590  PRINT 
3600  IF I$[I,LEN(I$) MIN 10]#P$ THEN 3300
3610  FOR X=I TO LEN(P$)
3620  IF NUM(P$[X])<33 OR NUM(P$[X])>94 THEN 3930
3630  NEXT X
3640  P$=UPS$(P$)
3650  SYSTEM Y,"ECH-ON"
3660  LOCK #I
3670  IF  END #I THEN 3720
3680  IF TYP(I)#3 THEN 3720
3690  FOR X=I TO 32767 STEP T
3700  PRINT #I,X
3710  NEXT X
3720  M=0
3730  IF  END #I THEN 3900
3740  IF  NOT X5 OR  NOT POS(M$,"/NP") THEN 3770
3750  PRINT #I,X5
3760  X5=X5* NOT POS(M$,"/NP")
3770  FOR Z=-T TO T STEP T
3780  FOR X=I TO 32767 STEP T
3790  READ #I,X
3800  GOTO (TYP(-I)+Z)*(TYP(-I)>T) OF 3900,3890,3900,3860,3910,3860
3810  READ #I,X;Y,Y,A$,I$,A$,X2,X3
3820  M=M MAX (TIM(3)-X3)*365+TIM(T)-X2
3830  IF Z=T AND (TIM(3)-X3)*365+TIM(T)-X2 >= M AND M>D2 AND D2 THEN 3860
3840  IF P$#I$ THEN 3890
3850  IF  NOT X5 AND POS(P$,I$) AND POS(I$,P$) THEN 3930
3860  PRINT #I,X;U,A,C$,P$,T$,TIM(T),TIM(3),R,R1,TIM(I),TIM(4),TIM(0),(POS(M$,"/P")>0) MAX T*(POS(M$,"/U")>0),POS(M$,"/AP")
3870  MAT  PRINT #I;A,B,C,J,K,P,R,U
3880  STOP 
3890  NEXT X
3900  NEXT Z
3910  PRINT "NO ROOM IN FILE."
3920  GOTO 1120
3930  PRINT "INVALID PASSWORD."
3940  GOTO 3300
3950  ASSIGN R$,I,Z
3960  IF Z<3 THEN 4030
3970  PRINT "RULES FILE NOT FOUND."
3980  GOTO 1120
3990  ASSIGN H$,I,Z
4000  IF Z<3 THEN 4030
4010  PRINT "INSTURCTIONS FILE CAN'T BE FOUND."
4020  GOTO 1120
4030  PRINT "Line up the printing head with the top of the next page and"'13'10"hit the return key."
4040  LINPUT I$
4050  IF TYP(I)#2 THEN 1120
4060  READ #I;I$
4070  PRINT I$
4080  GOTO 4050
4090  ASSIGN Y$,I,Z
4100  IF  END #I THEN 1120
4110  PRINT LIN(-T);"  NAME     IDCODE  KB    DATE";SPA(7+T* NOT G)"TIME"
4120  PRINT "----------------------------------------------"
4130  IF Z>T THEN 1120
4140  FOR X=I TO 32
4150  READ #I;A$,Z,H,V,N,B,E[6],E[7],E[8],E[9]
4160  IF Y AND 60*(((TIM(3)-N)*365+TIM(T)-V)*24+TIM(I)-H)+TIM(0)-Z>Y OR  NOTE[6] THEN 4200
4170  GOSUB 4820
4180  CONVERT X TO N$
4190  PRINT A$[I,17];TAB(19+(X<10));N$"  "M$[I,9]"  "M$[10,18+5* NOT G]
4200  NEXT X
4210  PRINT LIN(-T);
4220  GOTO 1120
4230  ASSIGN S$,I,X,'10'13"`"
4240  PRINT LIN(-T);" NO.    NAME     PASSWORD  IDCODE   DATE";TAB(47+T* NOT G);"TIME"
4250  PRINT "----------------------------------------------------------"
4260  IF X THEN 1120
4270  IF  END #I THEN 4380
4280  B1=POS(M$,".")+I
4290  FOR X=B1+I TO B1+4
4300  N$=M$[B1,X-I]
4310  CONVERT M$[X,X] TO Z,4330
4320  NEXT X
4330  M$[B1,X-I]=" "
4340  GOSUB 6390
4350  X=X+T
4360  READ #I,X
4370  GOTO 4350
4380  IF  END #I THEN 4490
4390  FOR D=I TO X STEP T
4400  READ #I,D
4410  GOTO TYP(-I)-T OF 4490,4480
4420  READ #I;N,N,A$,B$,E$,V,N,M,M,H,B,Z,C,J
4430  IF  NOT POS(E$,N$) AND B1#I OR (TIM(3)-N)*365+TIM(T)-V-I>Y AND Y THEN 4480
4440  GOSUB 4820
4450  IF P1 OR C=T OR (C OR J) AND POS(T$,E$) THEN 4470
4460  B$="-------"
4470  PRINT (REC(I)+1)/2;TAB(5);A$;TAB(17);B$;TAB(28);E$;TAB(34);M$[I,9];SPA(T);M$[10,22]
4480  NEXT D
4490  PRINT LIN(-T);
4500  GOTO 1120
4510  REM **PRINT BOARD****
4520  B$="NO YES  /PU/LI/MA/OR/RE/YE/GR/DA/RR/UT/UN/MO/HO/NO/C /I "
4530  V=0
4540  MAT E=ZER
4550  FOR X=I TO 16
4560  E[X]=POS(M$,B$[6+3*X,8+3*X-(X>14)])
4570  V=V+E[X]*(X<11)
4580  NEXT X
4590  I$="  PURPLE  LIGHT BLUE  MAROON    ORANGE     RED      YELLOW    GREEN   DARK BLUE  RAILROAD  UTILITY  "
4600  M$="*UNOWNED* COMPUTER       "
4610  M$[20+INT(10/LEN(C$) MIN 4)]=C$
4620  PRINT LIN(-4);TAB(7);"PROPERTY       HOUSES RENT  MORTGAGED  MONOPOLY    OWNER"
4630  PRINT "-----------------------------------------------------------------"
4640  READ #I,I
4650  FOR X=I TO 40
4660  READ #I;A$,B,E,Y,Y,Y,Y,Y,Y,H,G,M,N
4670  IF B>3 OR  NOT E[14+A[4,N]] AND E[14]+E[15]+E[16] OR E[11]+E[12] AND  NOT E[11+A[3,N]] OR E[13] AND ( NOT A[I,N] OR B>I) OR  NOT E[G+(B+7)* NOT G] AND V THEN 4790
4680  CONVERT E/T* NOT A[3,N]+(E/T+E*.1)*A[3,N] TO E$
4690  PRINT A$;TAB(22);
4700  GOTO (A[4,N]#0)*B+I OF 4770,4710,4750,4770
4710  GOTO (A[T,N]=5) MAX T* NOT A[I,N] OF 4740,4750
4720  PRINT  USING "#,XXD";A[T,N]
4730  GOTO 4750
4740  PRINT "HOTEL";
4750  CONVERT A[5,N]* NOT A[3,N] TO A$
4760  PRINT TAB(29);"$"A$;
4770  PRINT TAB(35);B$[(A[3,N]+I)^T,T+(A[3,N]+I)^T];TAB(38+(LEN(E$)<3));"[$"E$"]";
4780  PRINT TAB(45);I$[10*(G+(B+7)* NOT G)-9,10*(G+(B+7)* NOT G)];TAB(56);M$[10*(A[4,N]+I)-9,10*(A[4,N]+I)]
4790  NEXT X
4800  PRINT LIN(-4);
4810  GOTO 1120
4820  S=N/4=INT(N/4)
4830  DEF FNA(B)=V>B+S
4840  M$="00-000-0000:00:00 a.m.    noonmid.JanFebMarAprMayJunJulAugSepOctNovDec"
4850  M=(V>31)+FNA(59)+FNA(90)+FNA(120)+FNA(151)+FNA(181)+FNA(212)+FNA(243)+FNA(273)+FNA(304)+FNA(334)+I
4860  E=V-(30*((M>4)+(M>6)+(M>9)+(M>11))+31*((M>I)+(M>3)+(M>5)+(M>7)+(M>8)+(M>10))+28*(M>T)+(V>60)*S)
4870  M$[4,6]=M$[32+M*3,34+M*3]
4880  CONVERT E TO M$[I+(E<10),T]
4890  CONVERT N TO M$[8+(N<10),9]
4900  M=H-(12*(H>12)-12* NOT H)* NOT G
4910  CONVERT M TO M$[10+(M<10),11]
4920  CONVERT Z TO M$[13+(Z<10),14]
4930  CONVERT B TO M$[16+(B<10),17]
4940  E1=4*(G#0) MAX (8+4* NOT H)* NOT (Z+B+G)*( NOT H OR H=12)
4950  M$[19,22]=M$[19+E1,22+E1]
4960  IF H<12 OR G THEN 4980
4970  M$[19,19]="p"
4980  RETURN 
4990  ASSIGN Y$,I,Z
5000  IF Z THEN 1120
5010  B=POS(M$,"*")
5020  E=POS(M$,"/")
5030  Z=POS(M$,"-")
5040  Y=K+I
5050  IF P1 THEN 5080
5060  CHAIN Z,M$[B+I]
5070  GOTO 1120
5080  CONVERT M$[E+I,Z-I+(LEN(M$)+I)* NOT Z] TO Y,2720
5090  GOTO (Y32)*T MAX (W=40) OF 5110,2720
5100  M$=M$[I,E-I MAX I]
5110  ADVANCE #I;(Y-I MAX 0)*10,Z
5120  READ #I;A$
5130  MAT  READ #I;F
5140  IF  NOT F[6] THEN 5420
5150  RESTORE 
5160  FOR X=I TO 10*(B AND (E OR  NOT P1))
5170  READ B$
5180  IF POS(B$,M$[I,3]) THEN 5210
5190  NEXT X
5200  GOTO 2720
5210  B$[5]=M$[B+I]
5220  F[6]=K+I
5230  GOTO X-6 OF 5350,5240,5440,5390
5240  A$[19,28]=B$
5250  F[8]=T
5260  LOCK #I
5270  READ #I,I
5280  ADVANCE #I;(Y-I MAX 0)*10,Z
5290  UPDATE #I;A$
5300  FOR X=I TO 9
5310  UPDATE #I;F[X]
5320  NEXT X
5330  UNLOCK #I
5340  GOTO 1120
5350  PRINT "LENGTH OF FILE:  ";
5360  LINPUT E$
5370 CONVERT E$ TO F[7],5350
5380  GOTO 5240
5390  A$[29,39]=M$[B+I]
5400  F[9]=T
5410  GOTO 5260
5420  PRINT "KB:";Y;"NOT USED."
5430  GOTO 1120
5440  PRINT A$[40,44]" USED OF "A$[45]" RECORDS PERMITTED."
5450  Z=POS(M$,"-")
5460  IF  NOT LEN(M$[Z+I]) OR  NOT Z THEN 1120
5470  A$[I,10]=" "
5480  A$[I,LEN(M$[Z+I])]=M$[Z+I,(Z+10) MIN LEN(M$)]
5490  F[7]=I
5500  F[6]=LEN(M$[Z+I])
5510  GOTO 5260
5520  REM **** USER OFFERS TRADE *****
5530  PRINT "TRADE COMMAND NOT READY."
5550  GOTO 1120
6390  Y=-I*(W=17)
6400  FOR B=LEN(M$) TO 0 STEP -I
6410  FOR Z=I TO B
6420  CONVERT M$[Z,B] TO Y,6450
6430  Y=INT(ABS(Y))
6440  RETURN 
6450  NEXT Z
6460  NEXT B
6470  RETURN 
6650  REM
6660  END