|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 12800 (0x3200) Types: TextFile Names: »SMRU1«
└─⟦d3919da1e⟧ Bits:30001784 SG0004 Floppy └─⟦this⟧ »/SMRU1«
«ff» 0001 DIM SVAR$(1),KOM$(1),SKIB$(1),PARTI$(4),TYPE$(18),X(20),Y(20),G(20),E(20),B(20),SLAGM$(31,33) 0002 RANDOMIZE 0003 DEF FNZ(Z)=INT(Z*RND(0)+1) 0004 INPUT "<12><6><110>&ØNSKES REGLERNE UDSKREVET ",SVAR$ 0005 IF SVAR$="J" THEN EXEC REGLER 0006 EXEC START 0007 EXEC DISPLAY 0008 REPEAT 0009 EXEC AFVIKL 0010 UNTIL W9=0 OR B9=0 0011 END «so» RUMKRIG 3.3.81 0012 PROC START 0013 LET TYPE$="ABCD> <60>123WXYZ*#789"; N=18; B9=N/2; W9=N/2; W=INT(RND(0)*2); SLAGM$(1)="0000000000000000000000000000000" 0014 FOR I=1 TO 31 0015 LET SLAGM$(I)=SLAGM$(1) 0016 NEXT I 0017 FOR I=1 TO INT(N/2) 0018 REPEAT 0019 LET X(I)=R(14-I); G(I)=1; Y(I)=R(14-I); E(I)=500; B(I)=0 0020 UNTIL SLAGM$(X(I)+1,Y(I)+2)="0" 0021 LET Æ9=X(I); Ø9=Y(I); MÆRKE=1 0022 EXEC SMARK 0023 IF I>4 THEN LET E(I)=300 0024 IF I>6 THEN LET B(I)=3 0025 NEXT I 0026 FOR I=INT(N/2)+1 TO N 0027 REPEAT 0028 LET X(I)=R(I/1)+22; G(I)=1; Y(I)=R(I/1.5)+I; E(I)=500; B(I)=0 0029 UNTIL SLAGM$(X(I)+1,Y(I)+2)="" 0030 LET Æ9=X(I); Ø9=Y(I); MÆRKE=1 0031 EXEC SMARK 0032 IF I>INT(N/2)+4 THEN LET E(I)=300 0033 IF I>INT(N/2)+6 THEN LET B(I)=3 0034 NEXT I 0035 ENDPROC«so».....START..... 0036 PROC DISPLAY 0037 EXEC RAMME 0038 FOR I=1 TO N 0039 LET NY=I; SKTR=0 0040 IF G(I)<>0 THEN EXEC TEGN 0041 NEXT I 0042 ENDPROC«so».....DISPLAY..... 0043 PROC AFVIKL 0044 REPEAT 0045 IF W=1 THEN 0046 LET PARTI$="HVID"; P=1; Q=INT(N/2) 0047 ELSE 0048 LET PARTI$="SORT"; P=INT(N/2)+1; Q=N 0049 ENDIF 0050 LET Æ=1; Ø=20 0051 EXEC CUR 0052 PRINT "<10><13><31>";PARTI$; 0053 INPUT "! HVILKET FARTØJ : ",KOM$ 0054 LET B1=0 0055 FOR I=P TO Q 0056 IF TYPE$(I)=KOM$ AND G(I)=1 THEN LET A=I; B1=1 0057 NEXT I 0058 UNTIL B1=1 0059 INPUT "KOMMANDO : ",KOM$ 0060 IF KOM$="F" THEN EXEC FLYTTE 0061 IF KOM$="R" THEN 0062 EXEC REGLER 0063 LET W=NOT W 0064 EXEC DISPLAY 0065 ENDIF 0066 IF KOM$="L" THEN EXEC LASER 0067 IF KOM$="S" THEN EXEC STATUS 0068 IF KOM$="B" THEN EXEC BOMBE 0069 IF W9=0 OR B9=0 THEN EXEC SEJR 0070 LET W=NOT W 0071 ENDPROC«so».....AFVIKL..... 0072 PROC FLYTTE 0073 FOR D1=1 TO 2 0074 IF D1=1 THEN 0075 EXEC FLYT1 0076 ELSE 0077 IF W9*B9<>0 THEN 0078 LET Æ=1; Ø=20 0079 EXEC CUR 0080 PRINT "<10><13><31>"; 0081 INPUT "ØNSKER DU AT FLYTTE ET ANDET FARTØJ (JA/NEJ) : ",SVAR$ 0082 IF SVAR$="J" THEN EXEC FLYT2 0083 ENDIF 0084 ENDIF 0085 NEXT D1 0086 ENDPROC«so».....FLYTTE..... 0087 PROC FLYT1 0088 REPEAT 0089 LET VIDERE=0 0090 LET Æ=1; Ø=21 0091 EXEC CUR 0092 INPUT "VEKTORER (X Y) : ",S1,S2 0093 LET R1=SQR(S1^2+S2^2); B1=6 0094 IF A<P+6 THEN LET B1=10 0095 IF A<P+4 THEN LET B1=8 0096 IF R1>B1 THEN 0097 LET Æ=1; Ø=22 0098 EXEC CUR 0099 PRINT "<10><13><31>UDENFOR RÆKKEVIDDE!" 0100 ELSE 0101 IF B1=10 THEN LET B1=20 0102 IF E(A)-R1*(18-B1)<=0 THEN 0103 PRINT "ENERGIEN ER KUN ";E(A);" TERA-JOULES!" 0104 ELSE 0105 LET VIDERE=1 0106 ENDIF 0107 ENDIF 0108 UNTIL VIDERE=1 0109 LET GL=A 0110 EXEC VISKUD 0111 LET X(A)=X(A)+S1; Y(A)=Y(A)+S2 0112 IF X(A)<0 OR X(A)>30 OR Y(A)<0 OR Y(A)>30 THEN 0113 LET Æ=50; Ø=20 0114 EXEC CUR 0115 PRINT TYPE$(A);" ER TABT I DET YDRE RUM!" 0116 INPUT " TRYK RETURN ",SVAR$ 0117 LET G(A)=0; W9=W9-(W=1); B9=B9=(W=0) 0118 ELSE 0119 LET NY=A; SKTR=1 0120 EXEC TEGN 0121 LET E(A)=E(A)-R1*(21-B1) 0122 ENDIF 0123 ENDPROC«so».....FLYT1..... 0124 PROC FLYT2 0125 REPEAT 0126 LET B1=0 0127 LET Æ=1; Ø=20 0128 EXEC CUR 0129 PRINT "<10><13><31>"; 0130 INPUT "HVILKET FARTØJ : ",SKIB$ 0131 FOR I=P TO Q 0132 IF TYPE$(I)=SKIB$ AND G(I)=1 THEN LET B1=I; I=Q 0133 NEXT I 0134 UNTIL B1<>0 0135 IF B1=A THEN 0136 PRINT "DETTE FARTØJ ER LIGE BLEVET FLYTTET!" 0137 INPUT "TRYK RETURN ",SVAR$ 0138 ELSE 0139 LET A=B1 0140 EXEC FLYT1 0141 ENDIF 0142 ENDPROC«so».....FLYT2..... 0143 PROC LASER 0144 IF A<P+6 THEN 0145 REPEAT 0146 REPEAT 0147 LET Æ=1; Ø=20 0148 EXEC CUR 0149 PRINT "<10><13><31>"; 0150 LET C=0 0151 INPUT "HVILKET FARTØJ ER MÅLET : ",SKIB$ 0152 FOR I=1 TO N 0153 IF TYPE$(I)=SKIB$ AND G(I)=1 THEN LET C=I; I=N 0154 NEXT I 0155 UNTIL C>0 0156 UNTIL G(C)<>0 0157 LET R1=SQR((X(A)-X(C))^2+(Y(A)-Y(C))^2) 0158 IF R1>12 THEN 0159 PRINT "UDENFOR RÆKKEVIDDE!" 0160 ELSE 0161 PRINT "AFSTAND ";R1;". "; 0162 INPUT "LASER ENERGI : ",P8 0163 IF E(A)-P8<0 THEN 0164 PRINT "ENERGI TIL RÅDIGHED ER KUN ";E(A);" TERA-JOULES!" 0165 ELSE 0166 EXEC LASERRES 0167 ENDIF 0168 ENDIF 0169 ELSE 0170 PRINT "DER ER IKKE LASERE PÅ JAGERE!" 0171 ENDIF 0172 INPUT "TRYK RETURN! ",SVAR$ 0173 ENDPROC«so».....LASER..... 0174 PROC LASERRES 0175 LET P7=(P8/((R1*.7)+.05))*(200/(E(C)+1)) 0176 LET E(A)=E(A)-P8; FTAB=1 0177 IF R(P7)<17 THEN 0178 LET FTAB=0 0179 PRINT "LASERSTRÅLEN AFBØJET!" 0180 LET L=R(5*P8/((R1*.8)+.05))+INT(100/((R1*.5)+1)) 0181 PRINT "ENERGITAB FOR MÅLET : ";L;" TERA-JOULES!" 0182 LET E(C)=E(C)-L 0183 IF E(C)<=0 THEN LET FTAB=1 0184 ENDIF 0185 LET UD=C 0186 IF FTAB=1 THEN EXEC TABB 0187 ENDPROC«so»......LASERRES..... 0188 PROC STATUS 0189 PRINT "<12> ";PARTI$;" FLÅDE STATUS." 0190 PRINT " ";;"--------------------------<10><13>" 0191 PRINT "FARTØJ","POSITION","ENERGI","BOMBER" 0192 PRINT "------","--------","------","------<10><13>" 0193 FOR I=P TO Q 0194 IF I=P THEN PRINT "SLAGSKIB" 0195 IF I=P+4 THEN PRINT "KRYDSER" 0196 IF I=P+6 THEN PRINT "JAGER" 0197 IF G(I)>0 THEN 0198 PRINT TYPE$(I),X(I),Y(I),E(I),B(I) 0199 ELSE 0200 PRINT TYPE$(I);" ØDELAGT!" 0201 ENDIF 0202 NEXT I 0203 INPUT "<10><10><13>TRYK RETURN ",SVAR$ 0204 IF W9<>0 AND B9<>0 THEN 0205 EXEC DISPLAY 0206 ENDIF 0207 ENDPROC«so».....STATUS..... 0208 PROC BOMBE 0209 IF B(A)>0 THEN 0210 LET Æ=1; Ø=20 0211 EXEC CUR 0212 PRINT "<10><13><31>"; 0213 INPUT "MÅLOMRÅDE (X Y) : ",S1,S2 0214 LET R1=SQR((X(A)-S1)^2+(Y(A)-S2)^2) 0215 IF R1=0 THEN LET R1=1E-10 0216 LET S1=S1-X(A); S2=S2-Y(A) 0217 PRINT "ANSLÅET TID TIL MÅLET ER ";R1/2;" SEK." 0218 INPUT " TAST FYR FOR AT AFFYRE BOMBEN : ",KOM$ 0219 IF KOM$="F" THEN EXEC BFLUGT 0220 ELSE 0221 PRINT "DER ER INGEN BOMBER PÅ FARTØJET!" 0222 INPUT " TRYK RETURN ",SVAR$ 0223 ENDIF 0224 ENDPROC«so».....BOMBE..... 0225 PROC BFLUGT 0226 PRINT "TRYK PÅ D, NÅR BOMBEN SKAL DETONERE!" 0227 LET I=1 0228 REPEAT 0229 LET I=I+1 0230 REM P.G.A. FORSKEL IMELLEM RCBASIC/COMAL80 KAN DENNE SÆTN. IKKE SKRIVES 0231 REM CALL"GET",SVAR$ 0232 UNTIL TAST=ORD("D") 0233 LET R2=I/43 0234 LET S1=INT(S1*(R2/R1)); S2=INT(S2*(R2/R1)) 0235 LET S1=S1+X(A); S2=S2+Y(A); B(A)=B(A)-1 0236 LET Æ=1; Ø=21 0237 EXEC CUR 0238 PRINT "<10><13><31>EKSPLOSIONENS CENTRUM ER :";S1;S2;CHR(7) 0239 LET F=0 0240 FOR I=1 TO N 0241 IF G(I)<>0 THEN 0242 LET B1=SQR((X(I)-S1)^2+(Y(I)-S2)^2) 0243 IF B1<=2.25 THEN 0244 LET F=1 0245 IF R(10*B1)>4.5 THEN 0246 LET Æ=50; Ø=20 0247 EXEC CUR 0248 PRINT "FARTØJ ";TYPE$(I);" ER I BRAND!" 0249 LET L=R(225/(B1+.05)) 0250 LET Æ=50; Ø=21 0251 EXEC CUR 0252 PRINT "ENERGITAB PÅ ";L;" TERA-JOULES!" 0253 INPUT " TRYK RETURN ",SVAR$ 0254 LET E(I)=E(I)-L 0255 LET UD=I 0256 IF E(I)<0 THEN EXEC TABB 0257 ELSE 0258 LET UD=I 0259 EXEC TABB 0260 ENDIF 0261 ENDIF 0262 ENDIF 0263 NEXT I 0264 IF F=0 THEN 0265 PRINT "INGEN FARTØJER INDENFOR EKSPLOSIONSOMRÅDET!" 0266 INPUT "TRYK RETURN ",SVAR$ 0267 ENDIF 0268 ENDPROC«so».....BFLIGT..... 2000 PROC TABB 2010 LET Æ=1; Ø=1 2020 EXEC CUR 2030 PRINT "<10><13><31>"; 2040 FOR TTID=1 TO 300 2050 NEXT TTID 2060 EXEC CUR 2070 LET Æ=50; Ø=20 2080 EXEC CUR 2090 PRINT "FARTØJ ";TYPE$(UD);" ER ØDELAGT!" 2100 LET Æ=50; Ø=21 2110 EXEC CUR 2120 PRINT CHR(30) 2130 LET G(UD)=0 2140 LET GL=UD 2150 EXEC VISKUD 2160 IF UD>INT(N/2) THEN LET B9=B9-1 2170 IF UD<INT(N/2) THEN LET W9=W9-1 2180 INPUT "TRYK RETURN ",SVAR$ 2190 ENDPROCå«so».....TABB...... 2200 PROC SEJR 2210 LET PARTI$="HVID"; P=1; Q=INT(N/2) 2220 IF W9=0 THEN LET PARTI$="SORT"; P=INT(N/2); Q=N 2230 PRINT "<12>SEJR TIL ";PARTI$;"!" 2240 PRINT "<7><7><7><7><7><7><7><7><7><7>"; 2250 INPUT "VIL DU SE DIN STATUS ",SVAR$ 2260 IF SAVR$="J" THEN EXEC STATUS 2270 ENDPROCå.....SEJR..... 2280 PROC SMARK 2290 FOR PLADSER=1 TO 3 2300 LET SLAGM$(Æ9+1,Ø9+PLADSER)=CHR(48+MÆRKE) 2310 NEXT PLADSER 2320 ENDPROC. 2330 PROC RAMME 2340 LET Æ=1; Ø=1 2350 PRINT CHR(12) 2360 EXEC CUR 2370 PRINT " 0 2 4 6 8 10 12 14"; 2380 PRINT " 16 18 20 22 24 26 28 30" 2390 FOR J=0 TO 15 2400 LET Æ=1; Ø=J+2 2410 EXEC CUR 2420 PRINT J*2 2430 LET Æ=65; Ø=J+2 2440 EXEC CUR 2450 PRINT J*2 2460 NEXT J 2470 PRINT " 0 2 4 6 8 10 12 14"; 2480 PRINT " 16 18 20 22 24 26 28 30" 2490 ENDPROC«so».....RAMME..... 2500 PROC VISKUD 2510 LET Æ=X(GL)*2+5; Ø=Y(GL)/2+2 2520 EXEC CUR 2530 PRINT " " 2540 LET Æ9=X(GL); Ø9=Y(GL); MÆRKE=0 2550 EXEC SMARK 2560 FOR PL=1 TO N 2570 LET Æ9=X(PL); Ø9=Y(PL); MÆRKE=1 2580 IF G(PL)=1 THEN EXEC SMARK 2590 NEXT PL 2600 ENDPROC«so».....VISKUD..... 2610 PROC TEGN 2620 IF SKTR=1 THEN 2630 REPEAT 2640 IF SLAGM$(X(NY)+1,Y(NY)+2)="1" THEN 2650 IF X(NY)<15 THEN 2660 LET X(NY)=X(NY)+1 2670 ELSE 2680 LET X(NY)=X(NY)-1 2690 ENDIF 2700 ENDIF 2710 UNTIL SLAGM$(X(NY)+1,Y(NY)+2)="0" 2720 LET Æ9=X(NY); Ø9=Y(NY); MÆRKE=1 2730 EXEC SMARK 2740 ENDIF 2750 LET Æ=X(NY)*2+5; Ø=Y(NY)/2+2 2760 EXEC CUR 2770 PRINT TYPE$(NY) 2780 ENDPROC«so».....TEGN..... 2790 PROC CUR 2800 PRINT CHR(6);CHR(Æ+95-(Æ>32)*64-(Æ>64)*64);CHR(Ø+95); 2810 ENDPROC«so».....CUR..... 2820 PROC REGLER 2830 PRINT "<12>DU KOMMANDERER EN FLÅDE AF FARTØJER!<10><13>" 2840 PRINT "MULIGE KOMMANDOER ER : FLYT LASER STATUS BOMBE REGLER" 2850 PRINT " ---- ----- ------ ----- ------" 2860 PRINT "KOMMANDOER ANGIVES VED AT TASTE DET FØRSTE BOGSTAV (F/L/S/B/R)" 2870 PRINT "DU KAN FLYTTE 2 FARTØJER ELLER ANGRIBE FRA 1. BOGSTAV.<10><13>" 2880 PRINT "SORT OG HVID SKIFTES TIL AT FLYTTE ELLER ANGRIBE.<10><13>" 2890 PRINT "FARTØJER","MAX. BEVÆGELSE","ENERGILASER"," BOMBER","LASER" 2900 PRINT "--------","--------------","-----------"," ------","-----" 2910 PRINT "SLAGSKIB","10 ENHEDER","500 TERA-JOULES"," INGEN","JA" 2920 PRINT "(A,B,C,D,W,X,Y,Z)" 2930 PRINT "KRYDSER","10 ENHEDER","300 TERA-JOULES","INGEN","JA" 2940 PRINT "(<60>,>,*,#)" 2950 PRINT "JAGER","6 ENHEDER","300 TERA-JOULES"," 3 STK. ","INGEN" 2960 PRINT "(1,2,3,7,8,9)<10><13>" 2970 PRINT "ENERGIFORBRUG VED BEVÆGELSER ER: JASER > SLAGSKIB >KRYDSER<10><13>" 2980 PRINT "LASER-RÆKKEVIDDE ER 12 ENHEDER. BOMBER UBEGRÆNSER!" 2990 INPUT "TRYK RETURN ",SVAR$ 3000 ENDPROCå.....REGLER..... «nul»