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

⟦7c38a39e5⟧ COMAL_SAVE

    Length: 4998 (0x1386)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦3b63f3afc⟧ »/SPACE.HLA01« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "HLA01"

 0001 REM  ***HENRIK LUND ANDREASEN.   DATO:24-11-81***«nul»
 0010 REM  >>>>>>>>>>YATZY<<<<<<<<<<«nul»«nul»
 0020 DIM OPT$ ( 20 )
 0030 LET OPT$ = "RUBRIK OPTAGET."
 0040 DIM ULOV$ ( 20 )
 0050 LET ULOV$ = "ULOVLIGT SVAR."
 0080 DIM NA$ ( 2 , 10 )
 0085 DIM SUM1 ( 10 )
 0086 DIM K ( 10 )
 0090 DIM RP$ ( 10 )
 0100 DIM RUB ( 2 , 18 )
 0110 FOR RUBRIK = 1 TO 18
 0120   FOR SNR = 1 TO 2
 0130     LET RUB ( SNR , RUBRIK ) = 100
 0140   NEXT 
 0150 NEXT 
 0160 DIM TERN ( 6 )
 0170 LET TERN ( 1 ) = 1 ; TERN ( 2 ) = 1 ; TERN ( 3 ) = 1 ; TERN ( 4 ) = 1 ; TERN ( 5 ) = 1 ; TERN ( 6 ) = 1
 0180 DIM TER ( 6 )
 0190 LET TER ( 1 ) = 1 ; TER ( 2 ) = 1 ; TER ( 4 ) = 1 ; TER ( 3 ) = 1 ; TER ( 5 ) = 1 ; TER ( 6 ) = 1
 0200 INPUT " DEN FØRSTE SPILLERS NAVN :" , NA$ ( 1 )
 0210 INPUT " DEN ANDEN SPILLERS NAVN  :" , NA$ ( 2 )
 0220 FOR SPIL = 1 TO 30
 0230   IF SPIL MOD 2 = 0 THEN
 0240     LET SNR = 2
 0250   ELSE 
 0260     LET SNR = 1
 0270   ENDIF 
 0280   LET AT = 0
 0290   PRINT NA$ ( SNR ) ; "SKAL SPILLE NU."
 0300   FOR ANKA = 1 TO 3
 0310     RANDOMIZE 
 0320     FOR NR = AT + 1 TO 5
 0330       LET TERN ( NR ) = INT ( RND ( 1 ) * 6 ) + 1
 0340     NEXT 
 0350     FOR NR = 1 TO 5
 0360       PRINT TERN ( NR ) ; TAB ( 3 ) ;
 0370     NEXT 
 0380     PRINT
 0390     INPUT " HVOR MANGE TERNINGER SKAL HOLDES : " , AT
 0400     CASE AT OF
 0410       PRINT ULOV$
 0420       GOTO 0390
 0430     WHEN 0
 0440       GOTO 0600
 0450     WHEN 1
 0460       INPUT " HVILKET TERNINGENR. :" , TER ( 1 )
 0470     WHEN 2
 0480       INPUT " HVILKE TERNINGENR. :" , TER ( 1 ) , TER ( 2 )
 0490     WHEN 3
 0500       INPUT " HVILKE TERNINGENR. : " , TER ( 1 ) , TER ( 1 ) , TER ( 3 )
 0510     WHEN 4
 0520       INPUT " HVILKE TERNINGENR. : " , TER ( 1 ) , TER ( 2 ) , TER ( 3 ) , TER ( 4 )
 0530     WHEN 5
 0540       LET ANKA = 3
 0550       GOTO 0600
 0560     ENDCASE «nul»A 
 0570     FOR NR = 1 TO AT
 0580       LET TERN ( NR ) = TERN ( TER ( NR ) )
 0590     NEXT 
 0600   NEXT 
 0610   INPUT " HVOR VIL DU PLACERE RESULTATET :" , RP$
 0620   CASE RP$ OF
 0630     PRINT ULOV$
 0640     GOTO 0610
 0650   WHEN "ETTERE"
 0660     LET RUBRIK = 1
 0670     EXEC \JNE
 0680   WHEN "TOERE"
 0690     LET RUBRIK = 2
 0700     EXEC \JNE
 0710   WHEN "TREERE"
 0720     LET RUBRIK = 3
 0730     EXEC \JNE
 0740   WHEN "FIRERE"
 0750     LET RUBRIK = 4
 0760     EXEC \JNE
 0770   WHEN "FEMMERE"
 0780     LET RUBRIK = 5
 0790     EXEC \JNE
 0800   WHEN "SEKSERE"
 0810     LET RUBRIK = 6
 0820     EXEC \JNE
 0830   WHEN "ET PAR"
 0840     LET RUBRIK = 9
 0850     EXEC PAR1
 0860   WHEN "TO PAR"
 0870     LET RUBRIK = 10
 0880     EXEC PAR2
 0890   WHEN "TRE ENS"
 0900     LET RUBRIK = 11
 0910     EXEC ENS3
 0920   WHEN "FIRE ENS"
 0930     LET RUBRIK = 12
 0940     EXEC ENS4
 0950   WHEN "LILLE"
 0960     LET RUBRIK = 13
 0970     EXEC LILLE
 0980   WHEN "STORE"
 0990     LET RUBRIK = 14
 1000     EXEC STOR
 1010   WHEN "HUS"
 1020     LET RUBRIK = 15
 1030     EXEC HUS
 1040   WHEN "CHANCE"
 1050     LET RUBRIK = 16
 1060     EXEC CHANCE
 1070   WHEN "YATZY"
 1080     LET RUBRIK = 17
 1090     EXEC YATZY
 1100   WHEN "STREGE"
 1110     EXEC STREGE
 1120   ENDCASE «nul» 
 1130 NEXT 
 1140 PROC \JNE
 1150   IF RUB ( SNR , RUBRIK ) = 100 THEN
 1160     LET RUB ( SNR , RUBRIK ) = 0
 1170     LET NR = 1
 1180     WHILE NR <= 5 DO
 1190       LET T = TERN ( NR )
 1200       IF T <> RUBRIK THEN LET T = 0
 1210       LET RUB ( SNR , RUBRIK ) = RUB ( SNR , RUBRIK ) + T
 1220       LET NR = NR + 1
 1230     ENDWHILE
 1235     PRINT RUB ( SNR , RUBRIK )
 1240     IF RUB ( SNR , RUBRIK ) < ( 3 * RUBRIK ) THEN
 1250       PRINT "DER ER IKKE NOK" ; RUBRIK ; "'ERE"
 1260       LET RUB ( SNR , RUBRIK ) = 100
 1265       GOTO 0610
 1270     ENDIF 
 1290   ELSE 
 1300     PRINT OPT$
 1305     GOTO 0610
 1310   ENDIF 
 1320 ENDPROC
 1330 PROC PAR1
 1335   IF RUB ( SNR , 9 ) <> 100 THEN GOTO 1422
 1340   LET NR = 0
 1350   REPEAT 
 1360     LET NR = NR + 1
 1370     IF TERN ( NR ) = TERN ( NR + 1 ) THEN LET RUB ( SNR , RUBRIK ) = TERN ( NR ) + TERN ( NR + 1 )
 1380   UNTIL TERN ( NR ) = TERN ( NR + 1 ) OR NR = 4
 1390   IF RUB ( SNR , 9 ) = 0 THEN
 1400     PRINT "DER ER IKKE ET PAR."
 1410     LET RUB ( SNR , RUBRIK ) = 100
 1420   ENDIF 
 1421   GOTO 1430
 1422   PRINT OPT$
 1424   GOTO 0610
 1430 ENDPROC AR1«nul»
 1440 PROC ENS3
 1445   IF RUB ( SNR , 11 ) <> 100 THEN GOTO 1505
 1450   IF TERN ( 1 ) = TERN ( 2 ) AND TERN ( 3 ) = TERN ( 2 ) THEN
 1460     LET RUB ( SNR , 11 ) = TERN ( 1 ) + TERN ( 2 ) + TERN ( 3 )
 1470   ELSE 
 1480     PRINT " DER ER IKKE 3 ENS."
 1490     LET RUB ( SNR , 11 ) = 100
 1500   ENDIF 
 1502   GOTO 1510
 1505   PRINT OPT$
 1507   GOTO 0610
 1510 ENDPROC NS3«nul»
 1520 PROC ENS4
 1525   IF RUB ( SNR , 12 ) <> 100 THEN GOTO 1582
 1530   IF TERN ( 1 ) = TERN ( 2 ) AND TERN ( 2 ) = TERN ( 3 ) AND TERN ( 3 ) = TERN ( 4 ) THEN
 1540     LET RUB ( SNR , 12 ) = TERN ( 1 ) + TERN ( 2 ) + TERN ( 3 ) + TERN ( 4 )
 1550   ELSE 
 1560     PRINT " DER ER IKKE 4 ENS."
 1570     LET RUB ( SNR , 12 ) = 100
 1580   ENDIF 
 1581   GOTO 1590
 1582   PRINT OPT$
 1584   GOTO 0610
 1590 ENDPROC NS4«nul»
 1600 PROC LILLE
 1610   LET NR = 1
 1620   REPEAT 
 1630     IF TERN ( NR ) - 1 = TERN ( NR + 1 ) THEN LET NR = NR + 1
 1640   UNTIL TERN ( NR ) - 1 <> TERN ( NR + 1 ) OR NR = 5
 1650   IF NR < 5 THEN
 1660     PRINT " DER ER IKKE LILLE STRAIGHT."
 1670     LET RUB ( SNR , 13 ) = 100
 1680   ELSE 
 1690     LET RUB ( SNR , 13 ) = 15
 1700   ENDIF 
 1710 ENDPROC ILLE«nul»

UDAS Segment

    FNA definition = 0xffff
    FNB definition = 0xffff
    FNC definition = 0xffff
    FND definition = 0xffff
    FNE definition = 0xffff
    FNF definition = 0xffff
    FNG definition = 0xffff
    FNH definition = 0xffff
    FNI definition = 0xffff
    FNJ definition = 0xffff
    FNK definition = 0xffff
    FNL definition = 0xffff
    FNM definition = 0xffff
    FNN definition = 0xffff
    FNO definition = 0xffff
    FNP definition = 0xffff
    FNQ definition = 0xffff
    FNR definition = 0xffff
    FNS definition = 0xffff
    FNT definition = 0xffff
    FNU definition = 0xffff
    FNV definition = 0xffff
    FNW definition = 0xffff
    FNX definition = 0xffff
    FNY definition = 0xffff
    FNZ definition = 0xffff
    FN[ definition = 0xffff
    FN\ definition = 0xffff
    FN] definition = 0xffff
    GOSUB-RETURN stack pointer = 0x0000
      stack[0] = 0x0386
      stack[1] = 0x0333
      stack[2] = 0x02df
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0481
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x04000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 3.3735e-80   (0x00010000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 6.17707e-84   (0x0000000c)
      Var# = 0x00ab
      Loop Top = 0x017d
      To Val = 30   (0x421e0000)
      Step Val = 1   (0x41100000)
      Var# = 0x0082
      Loop Top = 0x01b7
      To Val = 3   (0x41300000)
      Step Val = 1   (0x41100000)
      Var# = 0x0083
      Loop Top = 0x01cb
      To Val = 5   (0x41500000)
      Step Val = 1   (0x41100000)
    REPEAT-UNTIL stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    WHILE-ENDWHILE stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    IF-ELSE stack pointer = 0x0000
      stack[0] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0x014f 0x01 TER
    0x82 0x016b 0x00 ANKA
    0x83 0x016d 0x00 NR
    0x84 0x0085 0x01 RUB
    0x85 0x0169 0x00 AT
    0x86 0xffff 0x00 TENR
    0x87 0x0137 0x01 TERN
    0x88 0xffff 0x00 RP
    0x89 0x007d 0x02 RP$
    0x8a 0xffff 0x00 ETTERE
    0x8b 0xffff 0x00 \JNE
    0x8c 0xffff 0x00 TOERE
    0x8d 0xffff 0x00 TREERE
    0x8e 0xffff 0x00 TREER
    0x8f 0xffff 0x00 TOER
    0x90 0xffff 0x00 ENER
    0x91 0xffff 0x00 FIERRE
    0x92 0xffff 0x00 EXECFIRE
    0x93 0xffff 0x00 FIRE
    0x94 0xffff 0x00 FEMMERE
    0x95 0xffff 0x00 FEM
    0x96 0xffff 0x00 SEKSERE
    0x97 0xffff 0x00 SEKS
    0x98 0xffff 0x00 ET
    0x99 0xffff 0x00 ETPAR
    0x9a 0xffff 0x00 PAR1
    0x9b 0xffff 0x00 TOPAR
    0x9c 0xffff 0x00 PAR2
    0x9d 0xffff 0x00 TREENS
    0x9e 0xffff 0x00 EXECENS3
    0x9f 0xffff 0x00 ENS3
    0xa0 0xffff 0x00 FIREENS
    0xa1 0xffff 0x00 ENS4
    0xa2 0xffff 0x00 LILLE
    0xa3 0xffff 0x00 STOR
    0xa4 0xffff 0x00 HUS
    0xa5 0xffff 0x00 CHANCE
    0xa6 0xffff 0x00 YATZY
    0xa7 0xffff 0x00 STREGE
    0xa8 0xffff 0x00 UY857
    0xa9 0x0000 0x02 OPT$
    0xaa 0x001a 0x03 NA$
    0xab 0x0167 0x00 SPIL
    0xac 0xffff 0x00 TTHEN
    0xad 0xffff 0x00 SPNR
    0xae 0xffff 0x00 TNNR
    0xaf 0x000d 0x02 ULOV$
    0xb0 0xffff 0x02 ULO$
    0xb1 0xffff 0x00 LIST320
    0xb2 0xffff 0x00 LIST85
    0xb3 0xffff 0x00 NRR
    0xb4 0xffff 0x00 F
    0xb5 0xffff 0x00 LIST420
    0xb6 0xffff 0x00 NEXTNR
    0xb7 0xffff 0x02 RUBRIK$
    0xb8 0xffff 0x02 RUB$
    0xb9 0x0133 0x00 RUBRIK
    0xba 0x0135 0x00 SNR
    0xbb 0xffff 0x00 LISTT
    0xbc 0xffff 0x00 EN
    0xbd 0xffff 0x00 TTOR
    0xbe 0xffff 0x00 WHILENR
    0xbf 0xffff 0x00 T
    0xc0 0xffff 0x00 SACE
    0xc1 0xffff 0x00 RRUB
    0xc2 0xffff 0x00 REPEATT
    0xc3 0x0035 0x01 SUM1
    0xc4 0x0059 0x01 K
    0xc5 0xffff 0x00 KL
    0xc6 0xffff 0x00 KK
    0xc7 0xffff 0x00 RRU
    0xc8 0xffff 0x00 X
    0xc9 0xffff 0x00 Y
    0xca 0xffff 0x00 NEXTX
    0xcb 0xffff 0x00 GOTO1510
    0xcc 0xffff 0x00 LIST1430
    0xcd 0xffff 0x00 CRF

Wrapper

.magic = 0x4e32
.u_pas = 0x0657  // Length of UPAS in words
.u_das = 0x035d  // Length of UDAS in words
.u_dvs = 0x01ee  // Start på savede variabel indhold (word adr)
.u_nds = 0x0215  // Address på næste prog.sætning (word adr)
.u_cps = 0x0000  // Address på curr prog.sætning (word adr)
.u_tll = 0x0048  // Page størrelse
.u_tts = 0x000e  // TAP størrelse
.u_ran = 0x0000  // Random tal
.u_cdl = 0x0006  // Current DATA sætning ptr
.u_cdb = 0xdd4a  // Current DATA byte ptr
.u_esa = 0x0042  // ON ESE (word adr)
.u_era = 0x0000  // ON ERR (word adr)
.u_cas = 0xffff  // CASE dybde
.u_las = 0xffff  // last (-1)