SET NO DOUBLE 
10 DIM A$(69)
20 FOR J=0 TO 5
30 FOR I=1 TO 9
40 A$(J*10+I)=EDIT$(NUM$(J),2)
50 NEXT I
60 NEXT J
70 PRINT "        +-------+U"
80 PRINT "        ! ";A$(1);" ";A$(2);" ";A$(3);" !"
90 PRINT "        ! ";A$(8);" ";A$(9);" ";A$(4);" !"
100 PRINT "   L    ! ";A$(7);" ";A$(6);" ";A$(5);" !   R       B"
110 PRINT "+-------+-------+-------+-------+"
120 PRINT "! ";A$(11);" ";A$(12);" ";A$(13);" ! ";A$(21);" ";A$(22);" ";
125 PRINT A$(23);" ! ";
130 PRINT A$(31);" ";A$(32);" ";A$(33);" ! ";A$(41);" ";A$(42);" ";A$(43);
135 PRINT " !"
140 PRINT "! ";A$(18);" ";A$(19);" ";A$(14);" ! ";A$(28);" ";A$(29);" ";
145 PRINT A$(24);" ! ";
150 PRINT A$(38);" ";A$(39);" ";A$(34);" ! ";A$(48);" ";A$(49);" ";A$(44);
155 PRINT " !"
160 PRINT "! ";A$(17);" ";A$(16);" ";A$(15);" ! ";A$(27);" ";A$(26);" ";
165 PRINT A$(25);" ! ";
170 PRINT A$(37);" ";A$(36);" ";A$(35);" ! ";A$(47);" ";A$(46);" ";A$(45);
175 PRINT " !"
180 PRINT "+-------+-------+-------+-------+"
190 PRINT "       /! ";A$(51);" ";A$(52);" ";A$(53);" !"
200 PRINT "      F ! ";A$(58);" ";A$(59);" ";A$(54);" !"
210 PRINT "        ! ";A$(57);" ";A$(56);" ";A$(55);" !"
220 PRINT "        +-------+D";
230 PRINT 
240 PRINT "COMMAND STRING";
250 INPUT C$
260 IF C$="H" THEN 2080
270 IF C$="E" THEN 2090
280 IF POS(C$,"'",1)=0 THEN 340
290 P=POS(C$,"'",1)
300 N$=MID$(C$,P-1,P-1)
310 N$=N$+N$+N$
320 C$=MID$(C$,1,P-2)+N$+MID$(C$,P+1,LEN(C$))
330 GOTO 280
340 IF POS(C$,"Y",1)=0 THEN 380
350 P=POS(C$,"Y",1)
360 C$=MID$(C$,1,P-1)+"ZXZ'"+MID$(C$,P+1,LEN(C$))
370 GOTO 280
380 D=LEN(C$)
390 IF D=0 THEN 230
400 M=0
410 FOR I=1 TO D-3
420 IF MID$(C$,I+1,I+1)<>MID$(C$,I,I) THEN 470
430 IF MID$(C$,I+2,I+2)<>MID$(C$,I,I) THEN 470
440 IF MID$(C$,I+3,I+3)<>MID$(C$,I,I) THEN 470
450 C$=MID$(C$,1,I-1)+MID$(C$,I+4,D)
460 M=1\I=D
470 NEXT I
480 IF M<>0 THEN 380
490 FOR K=1 TO D
500 E$=MID$(C$,K,K)
510 IF E$="Z" THEN 640
520 IF E$="X" THEN 660
530 IF E$="B" THEN 680
540 IF E$="D" THEN 740
550 IF E$="R" THEN 800
560 IF E$="F" THEN 860
570 IF E$="L" THEN 940
580 IF E$="U" THEN 1000
590 IF E$="C" THEN 20
600 PRINT "BAD INPUT ,'";MID$(C$,1,K-1);"' EXECUTED"
610 K=D
620 NEXT K
630 GOTO 70
640 GOSUB 1060
650 GOTO 620
660 GOSUB 1350
670 GOTO 620
680 GOSUB 1060
690 GOSUB 1060
700 GOSUB 880
710 GOSUB 1060
720 GOSUB 1060
730 GOTO 620
740 GOSUB 1350
750 GOSUB 880
760 GOSUB 1350
770 GOSUB 1350
780 GOSUB 1350
790 GOTO 620
800 GOSUB 1060
810 GOSUB 1060
820 GOSUB 1060
830 GOSUB 880
840 GOSUB 1060
850 GOTO 620
860 GOSUB 1660
870 GOTO 620
880 IF E$<>MID$(C$,K+1,K+1) THEN 920
890 K=K+1
900 GOSUB 1660
910 GOTO 880
920 GOSUB 1660
930 RETURN 
940 GOSUB 1060
950 GOSUB 880
960 GOSUB 1060
970 GOSUB 1060
980 GOSUB 1060
990 GOTO 620
1000 GOSUB 1350
1010 GOSUB 1350
1020 GOSUB 1350
1030 GOSUB 880
1040 GOSUB 1350
1050 GOTO 620
1060 L=4\J=6
1070 GOSUB 1310
1080 L=3\J=4
1090 GOSUB 1310
1100 L=2\J=3
1110 GOSUB 1310
1120 L=1\J=2
1130 GOSUB 1310
1140 L=6\J=1
1150 GOSUB 1310
1160 A$=A$(1)
1170 B$=A$(2)
1180 FOR J=3 TO 8
1190 A$(J-2)=A$(J)
1200 NEXT J
1210 A$(7)=A$
1220 A$(8)=B$
1230 A$=A$(57)
1240 B$=A$(58)
1250 FOR J=58 TO 53 STEP -1
1260 A$(J)=A$(J-2)
1270 NEXT J
1280 A$(52)=B$
1290 A$(51)=A$
1300 RETURN 
1310 FOR I=1 TO 9
1320 A$(10*J+I)=A$(10*L+I)
1330 NEXT I
1340 RETURN 
1350 L=0\J=6
1360 GOSUB 1310
1370 L=2\J=0
1380 GOSUB 1310
1390 L=5\J=2
1400 GOSUB 1310
1410 FOR L=1 TO 4
1420 A$(50+L)=A$(44+L)
1430 A$(54+L)=A$(40+L)
1440 NEXT L
1450 A$(59)=A$(49)
1460 FOR L=1 TO 4
1470 A$(40+L)=A$(64+L)
1480 A$(44+L)=A$(60+L)
1490 NEXT L
1500 A$(49)=A$(69)
1510 A$=A$(11)
1520 B$=A$(12)
1530 FOR I=13 TO 18
1540 A$(I-2)=A$(I)
1550 NEXT I
1560 A$(17)=A$
1570 A$(18)=B$
1580 A$=A$(37)
1590 B$=A$(38)
1600 FOR I=36 TO 31 STEP -1
1610 A$(I+2)=A$(I)
1620 NEXT I
1630 A$(31)=A$
1640 A$(32)=B$
1650 RETURN 
1660 A$=A$(27)
1670 B$=A$(28)
1680 FOR I=28 TO 23 STEP -1
1690 A$(I)=A$(I-2)
1700 NEXT I
1710 A$(21)=A$
1720 A$(22)=B$
1730 A$=A$(5)
1740 B$=A$(6)
1750 D$=A$(7)
1760 A$(5)=A$(13)
1770 A$(6)=A$(14)
1780 A$(7)=A$(15)
1790 A$(13)=A$(51)
1800 A$(14)=A$(52)
1810 A$(15)=A$(53)
1820 A$(51)=A$(37)
1830 A$(52)=A$(38)
1840 A$(53)=A$(31)
1850 A$(37)=A$
1860 A$(38)=B$
1870 A$(31)=D$
1880 RETURN 
1890 PRINT 
1900 PRINT 
1910 PRINT "    FOLLOWING LETTERS MEANS 90 DEGREE, CLOCKWISE TWIST OF";
1915 PRINT " CUBIC'S SIDE"
1920 PRINT \ PRINT "F    - FRONT"
1930 PRINT "B   - BACK"
1940 PRINT "L   - LEFT"
1950 PRINT "R   - RIGHT"
1960 PRINT "D   - DOWN"
1970 PRINT "U   - UP"
1980 PRINT \ PRINT "TWISTES OF ALL CUBIC ARE DESCRIBED AS FOLLOW:"
1990 PRINT \ PRINT "X    - ROUND THE CENTER OF R-SIDE"
2000 PRINT "Y   - ROUND THE CENTER OF F-SIDE"
2010 PRINT "Z   - ROUND THE CENTER OF D-SIDE"
2020 PRINT \ PRINT "'    -  MEANS ANTICLOCKWISE TWIST, FOR EXAMPLE X' IS ";
2025 PRINT "THE SAME WHAT XXX"
2030 PRINT "C   - IS TO RESTORE, AND BEGIN AGAIN"
2040 PRINT "E   - IS FOR EXIT"
2050 PRINT "H   - IS FOR HELP"
2060 PRINT \ PRINT "ENJOY YOURSELF"
2070 RETURN 
2080 LET C$=""\ GOSUB 1890\ GOTO 270
2090 STOP 
2100 END 
