Listing of file='COM-LB' on disk='vmedia/best_of_BD_fules.wvd.zip'
# Sector 248, program filename = 'COM-LB'
0010 DIM A$64,E1$64,J(255)
: PRINT HEX(030A0A0A0A0A);TAB(23);"THE FOLLOWING IS A"
: PRINT
: PRINT TAB(25);HEX(C2A6C4A0C6D5CCC5D3A0C9CEC3AE)
: PRINT
: PRINT TAB(24);"USEFUL PROGRAM."
0020 KEYIN A$,30,20
: GOTO 20
0030 PRINT HEX(03)
0040 INPUT "Input - atom, molecule or LIST",A$
0050 T,C,W,U,Y=0
: B$=" "
: RESTORE
: IF STR(A$,1,1)="("THEN 240
0060 IF A$="FIX"THEN 420
: IF A$="LIST"THEN 350
: IF A$="END"THEN 410
0070 T=T+1
: U=U+1
: IF T>LEN(A$)THEN 170
0080 STR(B$,U,1)=STR(A$,T,1)
0090 IF STR(A$,T+1,1)="^"THEN 170
: IF STR(A$,T+1,1)="("THEN 170
: IF STR(A$,T+1,1)=")"THEN 170
: IF T=0THEN 70
: IF STR(A$,T+1,1)<"A"THEN 100
: IF STR(A$,T+1,1)>"Z"THEN 100
: GOTO 170
0100 IF STR(A$,T+1,1)<"a"THEN 210
: IF STR(A$,T+1,1)>"z"THEN 210
: GOTO 70
0110 H=0
: T=T+1
0120 T=T+1
: H=H+1
: IF STR(A$,T,1)<"0"THEN 150
: IF STR(A$,T,1)>"9"THEN 150
: STR(B$,H,1)=STR(A$,T,1)
: IF STR(A$,T+1,1)<"0"THEN 130
: IF STR(A$,T+1,1)>"9"THEN 130
: GOTO 120
0130 CONVERT B$TO B
: I=0
0140 I=I+1
: IF I>B-1THEN 160
: W=W+N
: GOTO 140
0150 T=T-1
0160 IF T+1>LEN(A$)THEN 230
: GOTO 200
0170 C=C+1
: IF C>106THEN 180
: READ C$,N
: IF C$=B$THEN 190
: GOTO 170
0180 E1$="You have an illegal element: "
: STR(E1$,30,3)=B$
: GOTO 220
0190 IF Y=500THEN 430
: W=W+N
: U,C=0
: B$=" "
: RESTORE
0200 IF STR(A$,T+1,1)="^"THEN 110
: IF STR(A$,T+1,1)="("THEN 240
: IF STR(A$,T+1,1)=")"THEN 250
: IF T+1>LEN(A$)THEN 230
: GOTO 70
0210 IF T+1>LEN(A$)THEN 170
: E1$="You have an illegal symbol: "
: STR(E1$,29,1)=STR(A$,T+1,1)
0220 PRINT
: PRINT "Entry of ";A$;" is incorrect. ";E1$
: PRINT
: GOTO 40
0230 PRINT
: IF Y=500THEN 440
: PRINT "MOLE OF ";A$;"=";W;"GRAMS."
: PRINT
: GOTO 40
0240 T=T+1
: X=W
: W=0
: GOTO 70
0250 T=T+1
: N=W
: W=W+X
: GOTO 200
0260 DATA "H",1,"He",4,"Li",7,"Be",9,"B",11,"C",12,"N",14,"O",16,"F",19,"Ne",2
0,"Na",23,"Mg",24,"Al",27,"Si",28,"P",31,"S",32,"Cl",35,"Ar",40
0270 DATA "K",39,"Ca",40,"Sc",45,"Ti",48,"V",51,"Cr",52,"Mn",55,"Fe",56,"Co",5
9,"Ni",59,"Cu",64,"Zn",65,"Ga",70,"Ge",73,"As",75,"Se",79,"Br",80
0280 DATA "Kr",84,"Rb",85,"Sr",88,"Y",89,"Zr",91,"Nb",93,"Mo",96,"Tc",98,"Ru",
101,"Rh",103,"Pd",106,"Ag",108,"Cd",112,"In",115,"Sn",119,"Sb",122
0290 DATA "Te",128,"I",127,"Xe",131,"Cs",133,"Ba",137,"La",139,"Ce",140,"Pr",1
41,"Nd",144,"Pm",145,"Sm",150,"Eu",152,"Gd",157,"Tb",159,"Dy",162,"Ho",16
4,"Er",167,"Tm",169,"Yb",173,"Lu",175
0300 DATA "Hf",178,"Ta",181,"W",184,"Re",186,"Os",190,"Ir",192,"Pt",195,"Au",1
97,"Hg",201,"Tl",204,"Pb",207,"Bi",209,"Po",209,"At",210,"Rn",222
0310 DATA "Fr",223,"Ra",226,"Ac",227,"Th",232,"Pa",231,"U",238,"Np",237,"Pu",2
44,"Am",243,"Cm",247,"Bk",247,"Cf",251,"Es",252,"Fm",257,"Md",258,"No",25
9,"Lr",260,"Unq",261,"Unp",262,"Unh",263
0320 DATA 11,55,1,2,3,44,33,-2,-1,55,1,2,3,4,5,6,11,55
0330 DATA 1,2,3,4,5,3,2,3,2,2,2,2,3,4,33,4,11,55,1,2,3,4,5,6,7,4,3,2,1,2,3,4,3
3,4,11,55,1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,5,6,7,4,4,4,3,2,1,2,3,4,11,
55,1,2,3
0340 DATA 4,5,6,5,4,3,3,3,3,55,55,55,55,55,55,55,55
0350 RESTORE
: A=0
: A$=" "
0360 A=A+1
: IF A>106THEN 40
: READ K$,B
: PRINTUSING 400,"Atomic no.=";A;"Symbol= ";K$;"Atomic weight=";B
: FOR I=1TO 50
: NEXT I
: KEYIN R$,370,360
: GOTO 360
0370 PRINT "So far - ";A$
: INPUT "Which one",K$
: IF K$="NONE"THEN 390
0380 K=K+1
: IF K>LEN(K$)THEN 390
: R=R+1
: STR(A$,R,1)=STR(K$,K,1)
: GOTO 380
0390 K=0
: INPUT "Continue",R$
: IF STR(R$,1,1)="Y"THEN 360
: IF STR(R$,1,1)="y"THEN 360
: R=0
: RESTORE
: GOTO 70
0400 %########### ### ####### ### ############## ###
0410 PRINT HEX(030A0A0A0A0A);TAB(20);"THE PRECEDING HAS BEEN A"
: PRINT
: PRINT TAB(25);HEX(C2A6C4A0C6D5CCC5D3A0C9CEC3AE)
: PRINT
: PRINT TAB(24);"USEFUL PROGRAM."
: FOR I=1TO 1000
: NEXT I
: STOP
: END
0420 INPUT "ELEMENTS",A$
: Y=500
: GOTO 60
0430 J8=J8+1
: IF J8>2THEN 600
: STR(J8$,J9+1,LEN(B$))=B$
: J9=J9+LEN(B$)
: J2=LEN(B$)
: RESTORE 212
: FOR J7=1TO C
: READ J
: NEXT J7
: READ J(J8)
: IF J(J8)=55THEN 590
: RESTORE
: U,C=0
: B$=" "
: GOTO 200
0440 IF J(1)>0THEN 450
: IF J(2)<=0THEN 590
: A=1
: GOTO 470
0450 IF J(2)>=0THEN 510
: A=-1
: GOTO 470
0460 FOR I=1TO 2
: IF J(I)=44THEN 560
: IF J(I)=11THEN 570
: IF J(I)=33THEN 580
: NEXT I
: GOTO 440
0470 FOR I=1TO 2
: IF J(I)=44THEN 560
: IF J(I)=11THEN 570
: IF J(I)=33THEN 580
: NEXT I
0480 U7=0
: P=P+1
: IF P>12THEN 590
0490 U7=U7+1
: IF U7>12THEN 480
: IF P*J(1)=-(U7*J(2))THEN 500
: GOTO 490
0500 PRINT STR(J8$,1,J9-J2);P;HEX(080808);"^";HEX(09);STR(J8$,J9-J2+1,J2);U7;H
EX(080808);"^"
: P,U7,J(1),J(2),J2,J8,J9,A,Y=0
: J8$=" "
: GOTO 40
0510 FOR I=1TO 2
: IF J(I)=44THEN 530
: IF J(I)=11THEN 540
: IF J(I)=33THEN 550
: NEXT I
: GOTO 440
0520 FOR I=1TO 2
: IF J(I)=44THEN 530
: IF J(I)=11THEN 540
: IF J(I)=33THEN 550
: NEXT I
: GOTO 590
0530 J(I)=-4
: IF J(I)=11THEN 570
: IF J(I)=33THEN 580
: I=2
: NEXT I
: GOTO 460
0540 J(I)=-1
: IF J(I)=33THEN 580
: I=2
: NEXT I
: GOTO 460
0550 J(I)=-3
: I=2
: NEXT I
: GOTO 460
0560 J(I)=4
: IF J(I)=11THEN 540
: IF J(I)=33THEN 550
: I=2
: NEXT I
: GOTO 510
0570 J(I)=1
: IF J(I)=33THEN 550
: I=2
: NEXT I
: GOTO 510
0580 J(I)=3
: I=2
: NEXT I
: GOTO 510
0590 PRINT "CAN'T HAVE THAT COMPOUND"
: END
0600 PRINT "YOU CAN'T HAVE MORE THAN 2 ELEMENTS NOW."