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

⟦ca987e8b1⟧ TextFile

    Length: 11776 (0x2e00)
    Types: TextFile
    Names: ».5«

Derivation

└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image
    └─ ⟦this⟧ »/.5« 
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image
    └─ ⟦this⟧ »/.5« 

TextFile

Mh(1) ER DET Q▶16◀`i▶16◀i(2) IS THE CAPITAL CAIRO ?iVh3h(18) DOES THE NAME START WITH EITHER A <B> OR AN <I> (Y/N) ?▶1b◀`i▶1c◀i(1) IS IT BHUTAN ?▶16◀`i▶16◀i(2) IS THE LAST LETTER <Q> OR <K> (YES^/NO)«so»i
`i(1) IS IT OMAN ?▶16◀`i▶16◀i(2) IS THE CAPITAL ABEBA ?Uh1h(1) IS IT DAHOMEY ?▶16◀`i▶16◀i0 1 2 3 4 5 6 7 8 9 ...............................FINISH```````````````````````````````````````````` 0010 ON ESC EXEC SLUTTE
 0020 REM //----------------------------------------------//
 0030 REM // PROGRAM : OTHELLO                            //
 0040 REM // SKREVET AF : ERIK T. NIELSEN I RC700 COMAL   //
 0050 REM // STED : RISMØLLESKOLEN, RANDERS, DEN 8.5.80   //
 0060 REM // DENNE VERSION ER AF : 22.12.80                //
 0070 REM //----------------------------------------------//
 0080 RANDOMIZE // START OF OTHELLO //
 0090 EXEC START
 0100 EXEC SPIL
 0110 EXEC SLUT
 0120 EXEC SLUTTE
 0130 STOP // END OF OTHELLO //
 0140 REM //----------------------------------------------//
 0150 PROC START
 0160   DIM BRÆT(10,10),X(8),Y(8),KRYDS$(1),T$(3)
 0170   DIM VERTI(10),HORIZ(10),PLACERING$(2)
 0180   FOR I=1 TO 8
 0190     READ X(I),Y(I)
 0200   NEXT I
 0210   DATA 1,-1,1,0,1,1,0,-1,-1,-1,-1,0,-1,1,0,1
 0220   PRINT CHR(12)
 0230   EXEC CURSOR(1,21,32)
 0240   REPEAT 
 0250     PRINT CHR(26); CHR(30); 
 0260     INPUT " YOUR CHOICE :  X OR O : ",KRYDS$
 0270     IF KRYDS$="X" THEN KRYDS$="X"
 0280     IF KRYDS$="O" THEN KRYDS$="O"
 0290   UNTIL KRYDS$="X" OR KRYDS$="O"
 0300   PRINT "IF YOU WAIVE YOUR CLAIM, THEN TYPE : RE"
 0310   PRINT "IF YOU GIVE UP / QUIT, THEN TYPE : QT"
 0320   R=1; RCVÆRDI=1+(KRYDS$="X"); MDVÆRDI=3-RCVÆRDI; T$=" XO"
 0330   TRUE=1; FALSE=0; TOM,NUL=0
 0340   BRC,BMD=2; PLACEREDE=4; AFSTÅET=0; BRÆT(5,5),BRÆT(6,6)=MDVÆRDI
 0350   VERTI(5),VERTI(6),HORIZ(5),HORIZ(6)=2; BRÆT(5,6),BRÆT(6,5)=RCVÆRDI
 0360   EXEC KANT
 0370   FOR I=5 TO 6
 0380     FOR J=5 TO 6
 0390       EXEC BRIKPRINT(I,J)
 0400     NEXT J
 0410   NEXT I
 0420 ENDPROC START
 0430 REM //----------//
 0440 PROC SPIL
 0450   REPEAT 
 0460     EXEC MDBRIKPLACERING
 0470     IF PLACERING$<>"QT" THEN EXEC RCBRIKPLACERING
 0480   UNTIL PLACEREDE=64 OR AFSTÅET=2 OR BMD=0 OR BRC=0 OR PLACERING$="QT"
 0490 ENDPROC SPIL
 0500 REM //----------//
 0510 PROC MDBRIKPLACERING
 0520   REPEAT 
 0530     REPEAT 
 0540       PRINT CHR(29); CHR(30); 
 0550       INPUT "INSERT POSITION : ",PLACERING$
 0560       EXEC CURSOR(1,2,32)
 0570       FOR SLET=1 TO 15
 0580         PRINT "                    "
 0590       NEXT SLET
 0600       EXEC CURSOR(1,2,32)
 0610       IF PLACERING$="RE" THEN AFSTÅET=AFSTÅET+1
 0620       REM VERT (CIFFER -48) TIL J.
 0630       REM HORZ (BOGSTAV-96) TIL I.
 0640       IF ORD(PLACERING$(2 : 1))<58 THEN 
 0650         J=ORD(PLACERING$(2 : 1))-48; I=ORD(PLACERING$(1 : 1))-96
 0660       ELSE 
 0670         J=ORD(PLACERING$(1 : 1))-48; I=ORD(PLACERING$(2 : 1))-96
 0680       ENDIF 
 0690       PLACERE=(FALSE=(PLACERING$="RE" OR PLACERING$="QT"))
 0700     UNTIL TRUE=(I>0 AND I<9 AND J>0 AND J<9) OR PLACERE=FALSE
 0710     IF PLACERE=FALSE THEN EXIT 
 0720     I=I+1; J=J+1; OKAY=FALSE
 0730     IF BRÆT(I,J)<>TOM THEN 
 0740       PRINT "OCCUPIED FIELD !"
 0750     ELSE 
 0760       EXEC OMLIGGENDE(I,J,RCVÆRDI)
 0770       IF MULIG=FALSE THEN 
 0780         PRINT "????"
 0790       ELSE 
 0800         EXEC OPTÆL(I,J,0,RCVÆRDI,MDVÆRDI)
 0810         IF VENDBARE=FALSE THEN 
 0820           PRINT "NO ONE CAN BE TURNED !"
 0830         ELSE *NOGEN KAN VENDES**
 0840           EXEC CURSOR(1,14,7)
 0850           PRINT "YOU GOT"; VENDBARE; 
 0860           IF VENDBARE=1 THEN 
 0870             PRINT "PIECE"
 0880           ELSE 
 0890             PRINT "PIECES."
 0900           ENDIF 
 0910           AFSTÅET=0; OKAY=TRUE; BMD=BMD+VENDBARE+1; BRC=BRC-VENDBARE
 0920           PLACEREDE=PLACEREDE+1; VERTI(I)=VERTI(I)+1; HORIZ(J)=HORIZ(J)+1
 0930           EXEC OPTÆL(I,J,1,RCVÆRDI,MDVÆRDI)
 0940         ENDIF 
 0950       ENDIF 
 0960     ENDIF 
 0970   UNTIL OKAY=TRUE
 0980 ENDPROC MDBRIKPLACERING
 0990 REM //----------//
 1000 PROC RCBRIKPLACERING
 1010   IF AFSTÅET=2 OR PLACERING$="QT" THEN EXIT 
 1020   I,J=1
 1030   REPEAT ** FIND THE TESTFIELDS LOWER LIMITS **
 1040     I=I+(VERTI(I)=0); J=J+(HORIZ(J)=0)
 1050   UNTIL VERTI(I)<>0 AND HORIZ(J)<>0
 1060   VI=I-1; VJ=J-1; I,J=10
 1070   REPEAT ** FIND THE TESTFIELDS UPPER LIMITS **
 1080     I=I-(VERTI(I)=0); J=J-(HORIZ(J)=0)
 1090   UNTIL VERTI(I)<>0 AND HORIZ(J)<>0
 1100   WI=I+1; WJ=J+1; VI=VI+(VI=1); VJ=VJ+(VJ=1)
 1110   WI=WI-(WI=10); WJ=WJ-(WJ=10); MAX=-1
 1120   FOR I=VI TO WI
 1130     FOR J=VJ TO WJ
 1140       IF BRÆT(I,J)=TOM THEN 
 1150         EXEC OMLIGGENDE(I,J,MDVÆRDI)
 1160         IF MULIG=TRUE THEN 
 1170           EXEC OPTÆL(I,J,0,MDVÆRDI,RCVÆRDI)«ff»

 1180           IF VENDBARE>0 THEN 
 1190             IF 0=((I-2)*(I-9)) THEN VENDBARE=VENDBARE+2
 1200             IF 0=((J-2)*(J-9)) THEN VENDBARE=VENDBARE+2
 1210             IF VENDBARE=>MAX THEN 
 1220               IF VENDBARE=MAX THEN R=RND(0)
 1230               IF R<.5 OR VENDBARE>MAX THEN MAX=VENDBARE; MI=I; MJ=J
 1240             ENDIF ** BETTER POSITION **
 1250           ENDIF ** PIECES CAN BE TURNED **
 1260         ENDIF ** POSSIBLE POSITION OF PIECE **
 1270       ENDIF ** ATTEMPTFIELD = ZERO **
 1280     NEXT J
 1290   NEXT I
 1300   IF MAX<0 THEN 
 1310     EXEC CURSOR(1,10,7)
 1320     PRINT "RC700 WAIVES IT'S CLAIM !"
 1330     PRINT "YOUR TURN"
 1340     AFSTÅET=AFSTÅET+1
 1350   ELSE ** PIECES CAN BE TURNED **
 1360     EXEC CURSOR(1,10,7)
 1370     PRINT "RC700 : ",CHR(MI+95); CHR(MJ+47)
 1380     EXEC OPTÆL(MI,MJ,1,MDVÆRDI,RCVÆRDI)
 1390     PLACEREDE=PLACEREDE+1; BRC=BRC+VENDBARE+1; BMD=BMD-VENDBARE
 1400     VERTI(MI)=VERTI(MI)+1; HORIZ(MJ)=HORIZ(MJ)+1; AFSTÅET=0
 1410     EXEC CURSOR(1,15,7)
 1420     PRINT "RC700 GOT"; VENDBARE; 
 1430     IF VENDBARE=1 THEN 
 1440       PRINT "PIECE."
 1450     ELSE 
 1460       PRINT "PIECES."
 1470     ENDIF 
 1480     REM 
 1490   ENDIF 
 1500 ENDPROC RCBRIKPLACERING
 1510 REM //----------//
 1520 PROC SLUT
 1530   EXEC CURSOR(1,21,31)
 1540   EXEC CURSOR(1,19,7)
 1550   PRINT "YOU HAVE"; BMD; "PIECES."
 1560   PRINT "RC700 HAS"; BRC; "PIECES."
 1570   PRINT 
 1580   IF BRC=BMD THEN PRINT "TIE !"
 1590   IF BRC>BMD THEN PRINT "  I GOT YOU !"
 1600   IF BRC<BMD THEN PRINT "  THERE YOU GO !  (LUCKY ?)"
 1610 ENDPROC SLUT
 1620 REM //----------//
 1630 PROC OPTÆL(IP,JP,VEND,MODSTBRIK,EGENBRIK)
 1640   VENDBARE=0
 1650   FOR RETNING=1 TO 8
 1660     KX=X(RETNING); KY=Y(RETNING); N=IP+KX; M=JP+KY; DELVEND=0
 1670     IF BRÆT(N,M)=MODSTBRIK THEN 
 1680       REPEAT ** SEEK YOUR OWN PIECE OR EMPTY BEHIND ADVERSERY. **
 1690         DELVEND=DELVEND+1; N=N+KX; M=M+KY
 1700       UNTIL BRÆT(N,M)=0 OR BRÆT(N,M)=EGENBRIK
 1710       IF BRÆT(N,M)=EGENBRIK THEN 
 1720         VENDBARE=VENDBARE+DELVEND
 1730         IF VEND=1 THEN 
 1740           N=IP-KX; M=JP-KY
 1750           FOR P=0 TO DELVEND
 1760             N=N+KX; M=M+KY; BRÆT(N,M)=EGENBRIK
 1770             EXEC BRIKPRINT(N,M)
 1780           NEXT P
 1790         ENDIF ** ONE ROW TURNED **
 1800       ENDIF ** OWN PIECE BEHIND ADVERSERY. **
 1810     ENDIF ** ADVERSERY NEXT TO RC-PIECE **
 1820   NEXT RETNING
 1830 ENDPROC OPTÆL
 1840 REM //----------//
 1850 PROC OMLIGGENDE(Æ,Ø,TEST)
 1860   FOR Z=1 TO 8
 1870     IF BRÆT(Æ+X(Z),Ø+Y(Z))=TEST THEN EXIT 
 1880   NEXT Z
 1890   MULIG=(Z<9)
 1900 ENDPROC OMLIGGENDE
 1910 REM //----------//
 1920 PROC BRIKPRINT(C,D)
 1930   EXEC CURSOR(C*4+30,D*2,ORD(T$(BRÆT(C,D)+1 : 1)))
 1940 ENDPROC BRIKPRINT
 1950 REM //----------//
 1960 PROC CURSOR(UD,NE,TS)
 1970   PRINT CHR(6); CHR(95+UD-(UD>32)*64-(UD>64)*64); CHR(NE+95); CHR(TS)
 1980 ENDPROC CURSOR
 1990 REM //----------//
 2000 PROC KANT
 2010   PRINT CHR(29)
 2020   EXEC BOGSTAVER
 2030   FOR I=1 TO 8
 2040     PRINT TAB(32); CHR(132); ",,N,,,N,,,N,,,N,,,N,,,N,,,N,,,N,,,N,,"; 
 2050     PRINT CHR(128)
 2060     PRINT TAB(33); CHR(48+I); CHR(132); "J"; 
 2070     FOR J=1 TO 8
 2080       PRINT "   J"; 
 2090     NEXT J
 2100     PRINT CHR(128); CHR(48+I)
 2110   NEXT I
 2120   PRINT TAB(32); CHR(132); ",,N,,,N,,,N,,,N,,,N,,,N,,,N,,,N,,,N,,"; 
 2130   PRINT CHR(128)
 2140   EXEC BOGSTAVER
 2150 ENDPROC KANT
 2160 REM //----------//
 2170 PROC BOGSTAVER
 2180   PRINT TAB(34); 
 2190   FOR I=1 TO 8
 2200     PRINT CHR(132); "J"; CHR(128); CHR(96+I); 
 2210   NEXT I
 2220   PRINT CHR(132); "J"; CHR(128)
 2230 ENDPROC BOGSTAVER
 2240 PROC SLUTTE
 2250   ON ESC EXEC SLUTTE
 2260   CHAIN "MENUE"
 2270 ENDPROC 
«ff»
 "J"; CHR(128)
 2230 ENDPROC BOGSTAVER
 2240 PROC SLUTTE
 0010 ON ESC CHAIN "MENUE"
 0020 RANDOMIZE 
 0030 REM (* THIS PROGRAM CAN PLAY MASTERMIND *)
 0040 REM (* PROGRAMMER: OLE PLANNTHIN           *)
 0050 REM (* WRITTEN 08.10.80                    *)
 0060 DIM OPLÆG(6),FORS(6),ANVOPL(6),ANVFOR(6)
 0070 DIM SVAR$(3),G$(6)
 0080 REPEAT 
 0090   PRINT CHR(12)
 0100   PRINT "THIS PROGRAM CAN PLAY MASTERMIND!"
 0110   PRINT " "
«ff»
«nul»