DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦581ca119c⟧ TextFile

    Length: 12800 (0x3200)
    Types: TextFile
    Names: »SMRU1«

Derivation

└─⟦d3919da1e⟧ Bits:30001784 SG0004 Floppy
    └─ ⟦this⟧ »/SMRU1« 

TextFile

«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»