1!GROUPT SYMMETRY OPERATIONS OF THE TD POINT GROUP WRITTEN BY R.T.O'NEILL AND JOAN STAGAMAN,XAVIER U.,CINCINNATI 4/1976 2!ADAPTED TO BASIC-PLUS AND CURSOR ADDRESSING FROM A FORTRAN PROGRAM BY D.T.HAWORTH,MARQUETTE U. (J.CHEM.ED. V.53 44(1976)) 3! REQUIRES 9 (.BAS) OR 19 (.BAC) BLOCKS OF STORAGE AND 6K OF CORE 90 PRINT " SYMMETRY OPERATIONS OF THE TD POINT GROUP"\PRINT 92 PRINT "IF YOU HAVE NEVER RUN THIS PROGRAM BEFORE, OR ARE NOT ON" \ PRINT "AN ADDS-580 TERMINAL, OR DO NOT HAVE A LIST OF THE TD" 94 PRINT "OPERATIONS,YOU SHOULD REQUEST INSTRUCTIONS."\PRINT 95 INPUT"DO YOU WANT INSTRUCTIONS (YES OR NO)";Z$ \ IF LEFT(Z$,1%)="Y" THEN 7000 100 DIM A$(24%),T$(24%),O$(4%),P(4%),Q(4%),R(4%),M(4%) 200 ! FUNCTION TO PLACE A0$ AT SCREEN POSITION A0%,A1% 210 DEF FNC$(A0%,A1%,A0$) 220 FNC$=CHR$(144%)+CHR$(A0%/10%*16%+A0%-A0%/10%*10%+128%) +CHR$(139%)+CHR$(A1%+64%)+A0$ 230 FNEND 1000 FOR I%=1% TO 4%\ READ O$(I%)\NEXT I% ! ATOM NAMES 1010 FOR I%=1% TO 4%\ READ P(I%)\NEXT I% ! ORIGINAL POSITIONS 1020 FOR I%=1% TO 24%\ READ A$(I%)\NEXT I% !SYMMETRY OPERATIONS 1030 FOR I%=1% TO 24%\ READ T$(I%)\NEXT I% !TRANSFORMATION MATRIX 1040 DATA A,B,D,E 1050 DATA 1,2,3,4 1060 DATA E,C3AC1,C3AC2,C3BC1,C3BC2,C3DC1,C3DC2,C3EC1,C3EC2 1070 DATA C2X1,C2Y1,C2Z1,S4X1,S4X3,S4Y1,S4Y3,S4Z1,S4Z3 1080 DATA @DACE,@DACB,@DACD,@DBCD,@DBCE,@DDCE 1090 DATA 1234 1100 DATA 1342,1423,3241,4213,4132,2431,3124,2314 1110 DATA 4321,3412,2143 1120 DATA 3142,2413,2341,4123,3421,4312 1130 DATA 1324,1243,1432,4231,3214,2134 1300 PRINT CHR$(140%)\N1%=0%\N2%=13%\ GOSUB 5000 1310 FOR I%=1% TO 4%\ S$(I%)=O$(I%) \ NEXT I% 1320 GOSUB 6000 1330 PRINT FNC$(0%,15%,"") \ INPUT"WHAT OPERATION IS TO BE DONE FIRST";Z$ 1340 E%=0% \ GOSUB 6200 \ IF E%=0% THEN 1345 1342 PRINT FNC$(0%,17%," ") \ GOTO1330 1345 P1%=P% 1350 FOR I%=1% TO 4% \ Q(M(I%)) = P(I%) \ NEXT I% \ N1%=30% \ N2%=13% \ GOSUB 5000 1370 FOR I%=1% TO 4% \ S$(I%)=O$(Q(I%)) \ NEXT I% 1380 GOSUB 6000 1390 PRINT FNC$(0%,17%,"") \ INPUT"WHAT OPERATION IS TO BE DONE SECOND";Z$ 1400 E%=0% \ GOSUB 6200 \ IF E%=1% THEN PRINT FNC$(0%,19%," ") \ GOTO 1390 1405 P2%=P% 1410 FOR I%=1% TO 4% \ R(M(I%))=Q(I%) \ NEXT I% \ N1%=49% \ N2%=22% \ GOSUB 5000 1420 FOR I%=1% TO 4% \ S$(I%)=O$(R(I%)) \ NEXT I% 1430 GOSUB 6000 1440 PRINT FNC$(0%,19%,"") 1450 PRINT"PERFORMING THE OPERATION ";A$(P1%);" FOLLOWED" 1460 PRINT"BY ";A$(P2%);" IS THE SAME AS "; \ Z$="" 1470 FOR I%=1% TO 4% \ M(R(I%))=P(I%) \ NEXT I% 1475 FOR I%=1% TO 4% \ Z$=Z$+MID(NUM$(M(I%)),2%,1%) \ NEXT I% 1480 FOR I%=1% TO 24% \ IF T$(I%)=Z$ THEN 1490 1482 NEXT I% 1490 PRINT A$(I%) 1500 PRINT FNC$(0%,22%,"") \ INPUT"WANT TO DO ANOTHER";Z$ 1520 IF LEFT(Z$,1%)="N" THEN 9999 ELSE GOTO 1300 4999 GOTO9999 5000 ! GOSUB TO PRINT MOLECULE AND COORDINATE SYSTEM 5010 PRINT FNC$(N1%,N2%,"Y **********") 5020 PRINT FNC$(N1%+3%,N2%-1%,"+ * * *") 5030 PRINT FNC$(N1%+6%,N2%-2%,"+ *") 5040 PRINT FNC$(N1%+6%,N2%-3%,"* + * *") 5050 PRINT FNC$(N1%+6%,N2%-4%,"* + * *") 5060 PRINT FNC$(N1%+6%,N2%-5%,"* -*-------------X") 5070 PRINT FNC$(N1%+6%,N2%-6%,"* 1 * *") 5080 PRINT FNC$(N1%+6%,N2%-7%,"********** *") 5090 PRINT FNC$(N1%+10%,N2%-8%,"* 1 * *") 5100 PRINT FNC$(N1%+14%,N2%-9%,"1*********") 5110 PRINT FNC$(N1%+14%,N2%-9%-J%,"1") FOR J%=1% TO 3% 5120 PRINT FNC$(N1%+14%,N2%-13%,"Z") 5125 PRINT FNC$(N1%+14%,N2%-5%,"C") 5130 RETURN 6000! GOSUB TO PRINT CHANGING POINTS AT PROPER PLACES 6010 PRINT FNC$(N1%+13%,N2%-9%,S$(1)) 6020 PRINT FNC$(N1%+16%,N2%-7%,S$(2)) 6030 PRINT FNC$(N1%+23%,N2%-2%,S$(3)) 6040 PRINT FNC$(N1%+6%,N2%,S$(4)) 6050 RETURN 6200 ! GOSUB TO FIND TRANSFORMATION VECTOR 6210 FOR I%=1% TO 24% \ IF Z$=A$(I%) THEN 6230 6220 NEXT I%\ PRINT "INVALID OPERATION"\E%=1%\RETURN 6230 P%=I%\ N%=1% 6240 N%=1% \ FOR I%=1% TO 4% 6250 M(I%)= VAL(MID(T$(P%),N%,1%)) \ N%=N%+1% \ NEXT I% 6290 RETURN 6999 ! INSTRUCTIONS 7000 PRINT " THIS PROGRAM USES THE CURSOR FUNCTIONS OF THE ADDS-580 CATHODE" \PRINT "RAY TUBE TERMINAL. IF YOU ARE ON SOME OTHER TERMINAL, SIGN OFF" \PRINT "OFF AS SOON AS THESE INSTRUCTIONS ARE PRINTED, AND SIGN BACK" 7010 PRINT "ON AN ADDS-580 TERMINAL." 7020 PRINT " THIS PROGRAM DEMONSTRATES THE 24 SYMMETRY OPERATIONS OF THE" \ PRINT "TD POINT GROUP. TO GET A LIST OF THESE OPERATIONS, 'CONTROL/C'" 7030 PRINT "THIS PROGRAM AND TYPE:" \PRINT " QUE /SK=!GROUPT.DOC/NH " 7035 !**** IN EXPORTED LISTINGS, THIS FILE IS CALLED 'GTDOC.CUR'. 7040 PRINT "BE SURE THAT THE TOP TWO BUTTONS ARE LIT. (PRESS THEM IF NECESSARY.)" \ PRINT "AFTER PICKING UP YOUR INSTRUCTIONS FROM THE PRINTER," \ PRINT "RETURN TO THE ADDS 580 TERMINAL AND TYPE:" 7050 PRINT " RUN!GROUPT " 9999 END