1 REM ... STR8.ECB 2 REM ...THIS PROGRAM IS THE PROPERTY OF THE UNIVERSITY OF HOUSTON 3 REM ...AND G. E. FISHER AND COPIES OF THIS PROGRAM CANNOT BE MADE 4 REM ...FOR COMMERCIAL REASONS WITHOUT THE CONSENT OF EITHER OF THE 5 REM ...ABOVE. ANY VIOLATIONS WILL BE GROUNDS FOR A LAW SUIT. 6 REM ... G. E. FISHER, 09 MAY 1974 7 REM ...SOL-20 Modification 30-April 1983 R.E.H. 8 REM ... PRINT V$(42);V$(43);V$(44);V$(45);V$(46);V$(47) 53 REM ...PRINT V$(18);V$(19);V$(20);V$(21);V$(22);V$(23);" "; 55 REM ...PRINT V$(30);V$(31);V$(32);V$(33);V$(34);V$(35);" "; 100 DIM C(8,150),S(48,48),V(11) 110 DIM K$(18),L$(10),O$(35),Q$(18),S$(22),U$(11),V$(48) 150 LET F7=.5,R7=1: REM ...Guess on R7 200 DEF FNR(Z)=INT(RND(0)*Z) 210 DEF FNM(Z1,Z2): REM ...MOD function (UNIVAC) 220 IF Z1>Z2 THEN LET Z=Z1-(INT(Z1/Z2)*Z2) 230 IF Z1=Z2 THEN LET Z=0 240 IF Z1.9 THEN 550 530 LET S(I,J)=0 540 GOTO 805 550 LET K=K+1 560 IF K>150 THEN 530: REM ...Original DIM=C(8,300) 565 LET S(I,J)=K,C(7,K)=I,C(8,K)=J 570 IF RND(0)>.7 THEN 650 590 LET C(1,K)=RND(0)*2E3,C(6,K)=6 600 LET C(4,K)=RND(0)*2,C(5,K)=RND(0)*1E7 620 LET C(2,K)=FNR(9.9)+1,C(3,K)=FNR(9.9)+1 640 GOTO 800 650 IF RND(0)>.5 THEN 710 670 LET C(1,K)=RND(0)*1E3,C(4,K)=RND(0)*10 690 LET C(5,K)=RND(0)*1E5,C(6,K)=FNR(2.99)+7 700 GOTO 620 710 LET C(1,K)=100*F8*RND(0),C(2,K)=360*RND(0) 730 LET C(3,K)=FNR(12.99),C(4,K)=0 750 LET C(5,K)=INT(2.999*F8*RND(0)) 760 LET C(6,K)=FNR(3.999)+2 800 LET K1=C(6,K),V(K1)=V(K1)+1 805 NEXT J 810 NEXT I 820 LET C9=1 822 PRINT "INHABITANTS NUMBER OF SHIPS" 824 PRINT "KLINGONS",V(2) 825 PRINT "ARCHONS",V(3) 826 PRINT "ROMULANS",V(4) 827 PRINT "OTHERS",V(5) 829 GOTO 1110 830 LET S$=". E K A R ? * O ! B % " 840 LET U$=".EKAR?*O!B%" 1020 PRINT " DO YOU NEED INSTRUCTIONS? ---=>"; 1030 INPUT X$ 1035 LET X$=X$+"N": PRINT 1040 IF X$(1,1)="N" THEN 1100 1046 PRINT " YOUR INSTRUCTIONS FOLLOW:" 1050 PRINT " ACTIONS" 1051 REM ...PRINT V$(6);V$(7);V$(8);V$(9);V$(10);V$(11);" "; 1060 GOSUB 10000: GOSUB 27000 1070 PRINT "SENSORS" 1080 GOSUB 12000: GOSUB 27000 1090 GOSUB 13000 1095 PRINT " AFTER A LANDING AT YOUR STARBASE, YOU MUST ORBIT A" 1096 PRINT " PLANET BEFORE LANDING AT A STARBASE AGAIN." 1100 PRINT " ENTER DEGREE OF DIFFICULTY FROM 1 TO 10 ---=>"; 1102 INPUT F8 1104 IF F8<1 OR F8>10 THEN 1100 ELSE PRINT 1106 GOTO 490 1110 LET S(20,20)=1 1120 LET C(1,1)=200,C(2,1)=0,C(3,1)=0,C(4,1)=0 1160 LET C(5,1)=10,C(6,1)=1,C(7,1)=20,C(8,1)=20 1194 LET A1=1 1196 GOTO 2100 1999 REM ...GET ACTION 2000 PRINT "ACTION"; 2010 GOSUB 8000 2020 IF A1>0 AND A1<9 THEN 2050 2030 GOSUB 10000 2040 GOTO 2000 2050 ON A1 GOTO 2100,2300,3200,3300,3400,3700,7000,20000 2099 REM ...DISPLAY ENTERPRISE 2100 LET I=C(7,1),J=C(8,1) 2115 GOSUB 12500 2120 GOSUB 11000 2130 PRINT Q$(1,3);" LOCATION:";: GOSUB 26000 2140 PRINT Q$(4,6);" COURSE: ";C(2,1) 2150 PRINT Q$(7,9);" SPEED: WARP ";C(3,1) 2160 PRINT Q$(10,12);" ENERGY: ";C(1,1);" UNITS" 2170 PRINT Q$(13,15);" CONDITION: ";K$(C9*6-5,C9*6);", SHIELDS:"; 2180 IF C(4,1)=0 THEN PRINT "DOWN" 2190 IF C(4,1)>0 THEN PRINT "UP, FACTOR: ";C(4,1) 2200 PRINT Q$(16,18);" PHOTON TORPEDOES: ";C(5,1) 2210 GOTO 2000 2299 REM ...SENSOR READING 2300 PRINT "SENSOR READING"; 2310 GOSUB 8000 2320 IF A1>0 AND A1<8 THEN 2360 2330 GOSUB 12000 2340 GOTO 2300 2360 GOSUB 20008 2370 GOTO 2300 2400 PRINT " RANGE ---=>"; 2402 INPUT R2 2404 IF R2<1 OR R2>10 THEN 2400 2410 LET N1=R2 2420 LET S3=FNM(C(7,1)-N1,48) 2430 LET S7=FNM(C(7,1)+N1,48) 2440 LET S4=FNM(C(8,1)-N1,48) 2450 LET S8=FNM(C(8,1)+N1,48) 2460 IF S3<0 THEN LET S3=0 2470 IF S4<0 THEN LET S4=0 2500 FOR I=S3 TO S7 2510 FOR J=S4 TO S8 2520 IF S(I,J)<=1 THEN 2620 ELSE LET K=S(I,J) 2580 IF C(6,K)=6 THEN 2620 ELSE LET K=C(6,K) 2590 GOSUB 12500 2600 PRINT "An object at";FNQ$(0) 2610 PRINT FNC$(K) 2620 NEXT J 2630 NEXT I 2650 GOTO 2300 2699 REM ...FORWARD SCAN 2700 LET I4=C(7,1),J4=C(8,1) 2725 LET P1=C(2,1) 2730 FOR P3=1 TO 15 2735 GOSUB 14000 2736 IF S(I,J)=1 THEN 2750 2740 IF S(I,J)<>0 THEN EXIT 2780 2750 NEXT P3 2760 PRINT "ALL CLEAR AHEAD." 2770 GOTO 2300 2780 LET K=S(I,J) 2781 LET K=C(6,K) 2790 GOSUB 12500 2800 PRINT " Object DEAD AHEAD";FNQ$(1) 2805 PRINT "Range is ";P3;" sectors" 2810 PRINT "It looks like ";FNC$(K) 2815 GOTO 2300 2819 PRINT : REM ...SECTOR SCAN 2820 PRINT "SECTOR ---=>"; 2830 INPUT S1,S2 2840 IF S1<1 OR S1>6 THEN 2820 ELSE LET I=6*(Q1-1)+S1-1 2850 IF S2<1 OR S2>6 THEN 2820 ELSE LET J=6*(Q2-1)+S2-1 2880 IF S(I,J)<>0 THEN 2910 2890 PRINT "NOTHING INDICATED IN THAT SECTOR." 2900 GOTO 2300 2910 LET K=S(I,J) 2920 IF C(6,K)<6 OR C(6,K)=10 THEN 2980 2925 LET L1=C(2,K),L2=C(6,K) 2928 LET T2=C(1,K)*10^(10-L2) 2930 PRINT " CLASS:";L$(L1,L1);" ";FNC$(L2) 2935 IF L2=9 THEN 3060 2940 PRINT " TEMPERATURE:";T2;" DEGREES" 2950 PRINT "DENSITY:";C(4,K) 2960 PRINT "CLASS ";C(3,K);" ATMOSPHERE" 2970 GOTO 2300 2980 REM ...DISPLAY SHIP 2985 PRINT "COURSE :";C(2,K);" DEGREES" 2990 PRINT "SPEED : WARP ";C(3,K) 3000 PRINT " ENERGY:";C(1,K);" UNITS" 3010 PRINT "SHIELDS:"; 3020 IF C(4,K)=0 THEN PRINT "DOWN" 3030 IF C(4,K)>0 THEN PRINT "UP FACTOR ";C(4,K) 3040 PRINT "It's ";FNC$(C(6,K)) 3050 GOTO 2300 3060 PRINT " AVAILABLE ENERGY:";C(1,K);" UNITS" 3070 GOTO 2300 3099 REM ...QUADRANT SCAN 3100 PRINT " Quadrant ---=>"; 3110 INPUT Q1,Q2 3120 IF Q1<1 OR Q1>8 THEN 3100 3130 IF Q2<1 OR Q2>8 THEN 3100 3140 GOSUB 11000 3150 PRINT Q$(1);" QUADRANT:";Q1;"-";Q2 3160 FOR I=2 TO 6 3170 PRINT Q$(I*3-2,I*3) 3180 NEXT I 3190 GOTO 2300 3199 REM ...COURSE CHANGE 3200 PRINT "HEADING ---=>"; 3210 INPUT C(2,1) 3220 IF C(2,1)<0 OR C(2,1)>360 THEN 3200 3230 PRINT "WARP ---=>"; 3240 INPUT C(3,1) 3250 IF C(3,1)<0 OR C(3,1)>12 THEN 3230 3255 IF C(1,1)<=0 THEN LET C(3,1)=0 3260 GOTO 2300 3300 PRINT "SHIELD FACTOR ---=>"; 3310 INPUT C(4,1) 3320 IF C(4,1)<0 OR C(4,1)>10 THEN 3300 3325 IF C(1,1)<=0 THEN LET C(4,1)=0 3330 GOTO 2000 3399 REM ...PHASER FIRE 3400 PRINT "PHASER HEADING ---=>"; 3410 INPUT P1 3420 IF P1<0 OR P1>360 THEN 3400 3430 PRINT "PHASER FACTOR ---=>"; 3440 INPUT P2 3450 IF P2<1 OR P2>6 THEN 3430 3455 LET C(1,1)=C(1,1)-P2 3457 IF C(1,1)<=0 THEN 2000 3460 LET I4=C(7,1),J4=C(8,1) 3480 FOR P3=1 TO P2 3485 GOSUB 14000 3487 IF S(I,J)=1 THEN 3500 3490 IF S(I,J)>0 THEN EXIT 3530 3500 NEXT P3 3510 PRINT " PHASER MISSED" 3520 GOTO 7000 3530 GOSUB 12600 3540 GOTO 7000 3699 REM ...PHOTON TORPEDO FIRE 3700 IF C(5,1)>0 THEN 3730 3710 PRINT "ALL PHOTON TORPEDOES HAVE BEEN FIRED." 3720 GOTO 7000 3730 LET C(5,1)=C(5,1)-1 3740 PRINT "PHOTON TORPEDO QUADRANT ---=>"; 3750 INPUT Q1,Q2 3760 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 3740 3770 PRINT "PHOTON TORPEDO SECTOR ---=>"; 3780 INPUT S1,S2 3790 IF S1<1 OR S1>6 OR S2<1 OR S2>6 THEN 3770 3800 LET C1=FNM(6*(Q1-1)+S1-5,48) 3805 IF C1<0 THEN LET C1=0 3810 LET C2=FNM(6*(Q2-1)+S2-5,48) 3815 IF C2<0 THEN LET C2=0 3820 LET C7=FNM(C1+8,48),C8=FNM(C2+8,48) 3830 LET I9=FNM(C1+4,48),J9=FNM(C2+4,48) 3838 IF ABS(C(7,1)-I9)>15 OR ABS(C(8,1)-J9)>15 THEN 3740 3839 LET C(1,1)=C(1,1)-ABS(C(7,1)-I9)-ABS(C(8,1)-J9) 3840 FOR I=C1 TO C7 3850 FOR J=C2 TO C8 3860 GOSUB 12800 3970 NEXT J 3980 NEXT I 3990 GOTO 7000 7000 LET C9=1 7010 FOR M=1 TO 48 7020 FOR N=1 TO 48 7030 IF S(M,N)<=0 THEN 7700 7032 LET I=M,J=N 7040 LET K=S(M,N) 7042 IF K=1 THEN 7410 7045 GOSUB 12500 7046 LET L=K 7050 IF C(6,K)>5 THEN 7700 7060 IF C(1,K)<10 THEN 7410 7062 IF J=C(8,1) THEN 7076 7064 IF I>C(8,1) THEN LET H1=H1+180 7074 GOTO 7079 7076 LET H1=0 7078 IF I6 THEN 7410 7120 IF L1<5 THEN 7300 7130 IF C(5,K)<1 THEN 7300 7133 LET C9=3 7135 LET L1=C(6,K) 7140 PRINT "PHOTON TORPEDO ATTACK FROM ";FNC$(L1) 7150 PRINT FNQ$(1) 7160 LET I=FNM(C(7,1)+INT(4-8*RND(0)),48)+1 7165 IF I<0 THEN LET I=I+48 7170 LET J=FNM(C(8,1)+INT(4-8*RND(0)),48)+1 7175 IF J<0 THEN LET J=J+48 7180 GOSUB 12500 7190 PRINT "TORPEDO EXPLODED";FNQ$(1) 7200 LET C1=FNM(I-2,48) 7205 IF C1<0 THEN LET C1=0 7210 LET C2=FNM(J-2,48) 7215 IF C2<0 THEN LET C2=0 7220 LET C7=FNM(I+2,48),C8=FNM(J+2,48) 7232 LET I9=I,J9=J 7240 FOR I=C1 TO C7 7250 FOR J=C2 TO C8 7260 GOSUB 12800 7270 NEXT J 7280 NEXT I 7290 GOTO 7410 7300 IF L1>6 THEN 7410 7305 LET L1=C(6,K) 7307 LET C9=3 7310 PRINT "PHASER ATTACK from ";FNC$(L1) 7320 PRINT FNQ$(1) 7330 LET P2=6 7340 LET P1=C(2,K) 7350 LET I4=C(7,L),J4C(8,L) 7365 FOR P3=1 TO P2 7370 GOSUB 14000 7380 IF S(I,J)<=0 THEN 7400 7390 GOSUB 12600 7400 NEXT P3 7410 LET K=S(M,N) 7420 LET I4=M,J4=N 7424 LET P3=C(3,K) 7426 LET P1=C(2,K) 7430 GOSUB 14000 7432 LET L=S(I,J) 7434 IF L=0 OR L=K THEN 7640 7435 LET L=ABS(L) 7436 IF ABS(C(7,1)-I)>6 OR ABS(C(8,1)-J)>6 THEN 7440 7438 GOTO 7445 7440 LET J=FNM(J+1,48) 7444 GOTO 7432 7445 LET L1=C(6,K),L2=C(6,L) 7449 IF L2=7 THEN 7612 7450 IF L2=9 THEN 7547 7453 IF L=1 OR K=1 THEN LET C9=2 7455 LET A$="A" 7460 IF L2<6 THEN LET A$="" 7470 PRINT FNC$(L1);" HAD A CLOSE ENCOUNTER WITH ";A$;" ";FNC$(L2) 7480 LET E1=C(1,K)+C(4,K)*10-C(1,L)-C(4,L)*10 7490 IF E1<0 THEN 7530 7500 PRINT FNC$(L2);" IS DESTROYED." 7502 LET V(L2)=V(L2)-1 7505 IF L=1 THEN 20000 7510 LET C(1,K)=E1 7520 GOTO 7640 7530 PRINT FNC$(L1);" IS DESTROYED." 7532 LET V(L1)=V(L1)-1 7535 IF K=1 THEN 20000 7540 LET S(M,N)=0 7545 GOTO 7700 7547 IF K><1 THEN 7550 7548 IF C5=1 THEN 7620 7549 LET C5=1 7550 PRINT FNC$(L1);" HAS LANDED AT HIS BASE." 7560 LET C(1,L)=C(1,L)-200 7570 LET C(1,K)=C(1,K)+200 7580 IF C(1,L)>0 THEN 7620 7590 LET C(1,K)=C(1,K)+C(1,L) 7600 PRINT " HIS BASE IS EMPTY." 7610 GOTO 7640 7612 LET L3=C(2,L) 7614 PRINT FNC$(L1);" IS IN ORBIT AROUND A CLASS ";L$(L3,L3);" PLANET." 7615 IF K=1 THEN LET C5=0 7620 LET J=FNM(J+1,48) 7630 IF S(I,J)<>0 THEN 7620 7640 LET S(M,N)=0 7650 LET S(I,J)=-K 7660 LET C(1,K)=C(1,K)-C(3,K)-C(4,K) 7670 LET C(7,K)=I,C(8,K)=J 7690 IF C(1,K)>0 THEN 7700 7695 LET C(1,K)=0,C(3,K)=0,C(4,K)=0 7700 NEXT N 7710 NEXT M 7720 FOR M=1 TO 48 7730 FOR N=1 TO 48 7740 IF S(M,N)<0 THEN LET S(M,N)=ABS(S(M,N)) 7750 NEXT N 7760 NEXT M 7770 GOTO 2000 8000 REM ...CONVERT COMMANDS 8010 INPUT X$ 8015 IF LEN(X$)<2 THEN 8010 8020 LET Y$=X$(1,2) 8030 FOR A1=1 TO 15 8040 IF Y$=O$(A1*2-1,A1*2) THEN 8080 8050 NEXT A1 8060 LET A1=0 8070 GOTO 8090 8080 IF A1>8 THEN LET A1=A1-8 8090 RETURN 9999 REM ...LIST ACTIONS 10000 PRINT " ST=ENTERPRISE STATUS SR=SENSOR READING" 10020 PRINT " CC=COURSE CHANGE SC=SHIELD CHANGE" 10040 PRINT " PF=PHASER FIRE TF=TORPEDO FIRE" 10060 PRINT " GO=CONTINUE SU=STOP GAME" 10080 RETURN 10999 REM ...BUILD QUADRANT DISPLAY 11000 LET M=6*(Q1-1) 11010 LET N=6*(Q2-1) 11015 LET I2=0 11020 FOR I1=M TO M+5 11030 LET I2=I2+1 11040 LET Q$(I2*3-2,I2*3)=" " 11050 FOR J1=N TO N+5 11060 LET J2=S(I1,J1) 11070 IF J2=0 THEN LET J3=1 ELSE LET J3=C(6,J2)+1 11090 LET Q$(I2*3-1,I2*3)=S$(J3*2-1,J3*2) 11130 NEXT J1 11140 NEXT I1 11150 RETURN 11999 REM ...LIST SENSORS 12000 PRINT "GS=GENERAL SCAN FS=FORWARD SCAN" 12020 PRINT "SS=SECTOR SCAN QS=QUADRANT SCAN" 12040 PRINT "AC=RETURN TO ACTION LF=INHABITANTS LEFT" 12050 PRINT "US=UNIVERSAL SCAN (1/4 OF UNIVERSE)" 12060 RETURN 12499 REM ...CALCULATE QUADRANT AND SECTOR 12500 LET I=INT(I),J=INT(J) 12510 LET Q1=INT(I/6+1),Q2=INT(J/6+1) 12520 LET S1=FNM(I,6)+1,S2=FNM(J,6)+1 12540 RETURN 12599 REM ...CALCULATE PHASER HITS 12600 GOSUB 12500 12610 LET K=S(I,J) 12615 IF K<=0 OR K=L THEN 12700 12617 LET L1=C(6,K) 12620 PRINT " HIT on ";FNC$(L1);FNQ$(0) 12640 LET E1=10*(P2-P3+1-C(4,K)) 12650 IF E1<0 THEN 12700 12660 LET C(1,K)=C(1,K)-E1 12670 IF C(1,K)>0 THEN 12700 12680 PRINT FNC$(L1);" is DESTROYED." 12682 LET V(L1)=V(L1)-1 12685 IF K=1 THEN 20000 12690 LET S(I,J)=0 12700 RETURN 12799 REM ...CALCULATE TORPEDO HITS 12800 GOSUB 12500 12810 LET K=S(I,J) 12820 IF K=0 THEN 12900 12822 LET K=ABS(K) 12825 LET L1=C(6,K) 12830 PRINT "HIT on ";FNC$(L1);FNQ$(1) 12840 LET E1=(5-ABS(I-I9)+5-ABS(J-J9)-C(4,K))*10 12850 IF E1<0 THEN 12900 12860 LET C(1,K)=C(1,K)-E1 12870 IF C(1,K)>0 THEN 12900 12880 PRINT "IT IS DESTROYED." 12882 LET V(L1)=V(L1)-1 12885 IF K=1 THEN 20000 12890 LET C(6,K)=10 12900 RETURN 12999 REM ...LIST LEGENDS 13000 PRINT " LEGEND" 13010 FOR I=1 TO 10 13020 PRINT S$(I*2-1,I*2);" is ";FNC$(I-1) 13030 NEXT I 13035 GOSUB 27000 13040 PRINT "HEADING : 0 - 360 DEGREES, 0 IS UP" 13050 PRINT "SHIELD FACTOR : 0 - 10" 13060 PRINT "SPEED : WARP 0 - 12" 13070 PRINT "PHASER FACTOR : 1 - 6": PRINT 13999 REM ...CALCULATE NEW INDEX 14000 LET I=FNM(I4-INT(P3*COS(P1/R7)+F7),48) 14010 IF I<0 THEN LET I=I+48 14020 LET J=FNM(J4+INT(P3*SIN(P1/R7)+F7),48) 14030 IF J<0 THEN LET J=J+48 14040 RETURN 20000 GOSUB 20008 20001 LET R8=0 20002 FOR I=2 TO 5 20003 LET R8=R8+V(I) 20004 NEXT I 20005 IF R8>=1 THEN 30000 20006 PRINT "YOU WIN, YOU BLOOD THIRSTY FIEND!!!!" 20007 GOTO 30000 20008 PRINT " INHABITANTS LEFT" 20010 PRINT "KLINGONS";TAB(15);V(2) 20020 PRINT "ARCHONS";TAB(15);V(3) 20030 PRINT "ROMULANS";TAB(15);V(4) 20040 PRINT "OTHERS";TAB(15);V(5) 20050 RETURN 20100 PRINT " 1/4 OF UNIVERSE (1 TO 4) ---=>"; 20110 INPUT F4 20120 LET N=F4*12 20130 IF F4<2 OR F4>4 THEN LET N=0 21000 IF F4<2 OR F4>4 THEN LET N=0 21003 FOR M=1 TO 2 21005 FOR I=N TO N+5 21010 FOR J=1 TO 48 21020 LET U8=S(I,J) 21025 IF U8=0 THEN LET U7=0 ELSE LET U7=C(6,U8) 21040 NEXT J 21050 PRINT V$(1,5);" "; 21060 NEXT I 21070 PRINT " " 21080 LET J=N+6 21090 LET N=J 21100 NEXT M 21110 GOTO 2000 25000 DEF FNC$(Z) 25005 IF Z=0 THEN PRINT "space"; 25010 IF Z=1 THEN PRINT "the ENTERPRISE"; 25020 IF Z=2 THEN PRINT "a KLINGON battle cruiser"; 25030 IF Z=3 THEN PRINT "an ARCHON destroyer"; 25040 IF Z=4 THEN PRINT "a ROMULAN star cruiser"; 25050 IF Z=5 THEN PRINT "an unknown object"; 25060 IF Z=6 THEN PRINT "a star"; 25070 IF Z=7 THEN PRINT "a planet"; 25080 IF Z=8 THEN PRINT "a comet"; 25090 IF Z=9 THEN PRINT "a starbase"; 25100 IF Z=10 THEN PRINT "a wreckage"; 25110 RETURN "" 25120 FNEND 26000 DEF FNQ$(Z) 26010 IF Z=1 THEN PRINT " in"; 26020 PRINT " Quadrant ";Q1;"-";Q2;" sector ";S1;"-";S2 26030 RETURN "" 26040 FNEND 27000 PRINT 27010 INPUT (1,0)"<*> Enter any letter to see more ---=>",I$ 27020 PRINT : RETURN 30000 END