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 - metrics - download

⟦6bfb69538⟧ COMAL_SAVE

    Length: 5120 (0x1400)
    Types: COMAL_SAVE
    Names: »DOWN«

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─⟦this⟧ »/JT1U.DOWN« 

UPAS Segment

SAVE filename: "DOWN"

 0010 PAGE = 0
 0020 INPUT "TIME : " , T , "  MINUT : " , M , " SEK. : " , S
 0030 PRINT "<12><13>BREAK DOWN :" ; T ; M ; S ; "<10><13>" ;
 0040 PRINT SYS ( 11 ) ; SYS ( 12 ) ; SYS ( 13 ) ; "<13>" ;
 0050 IF SYS ( 11 ) = T AND SYS ( 12 ) = M THEN PRINT "NÅH!!!"
 0060 IF SYS ( 11 ) <> T OR SYS ( 12 ) <> M OR SYS ( 13 ) <> S THEN GOTO 0040
 0070 CALL "INDUD"
 0080 EXEC NAVN
 0090 EXEC BR[T
 0100 EXEC KOORD
 0110 PROC FLYT
 0120   ON ESC THEN GOTO 0130
 0130   PRINT "<27>=<34>YFRA HVILKET FELT       "
 0140   INPUT "<27>=#YVIL DU FLYTTE " , BRIK2$ ;
 0150   DELAY = 1
 0160   LET S = 0
 0170   PRINT "<8><8> "
 0180   IF ORD ( BRIK2$ ( 1 ) ) - 64 < 1 OR ORD ( BRIK2$ ( 1 ) ) - 64 > 3 THEN EXEC FEJLT
 0190   IF S = 1 THEN GOTO 0130
 0200   IF ORD ( BRIK2$ ( 2 ) ) - 48 < 1 OR ORD ( BRIK2$ ( 2 ) ) - 48 > 3 THEN EXEC FEJLT
 0210   IF S = 1 THEN GOTO 0130
 0220   PRINT "<27>=)YTIL HVILKET FELT       "
 0230   INPUT "<27>=*YVIL DU FLYTTE " , BRIK1$ ;
 0240   DELAY = 1
 0250   PRINT "<8><8> "
 0260   LET S = 0
 0270   IF ORD ( BRIK1$ ( 1 ) ) - 64 < 1 OR ORD ( BRIK1$ ( 1 ) ) - 64 > 3 THEN EXEC FEJLT
 0280   IF S = 1 THEN GOTO 0220
 0290   IF ORD ( BRIK1$ ( 2 ) ) - 48 < 1 OR ORD ( BRIK1$ ( 2 ) ) - 48 > 3 THEN EXEC FEJLT
 0300   IF S = 1 THEN GOTO 0220
 0310 ENDPROC
 0320 PROC KOORD
 0330   LET USER = USER + 1
 0340   EXEC TUR
 0350   IF USER <= 6 THEN EXEC BRIK
 0360   IF USER > 6 THEN EXEC FLYT
 0370   LET S = 0
 0380   LET BRIK$ ( 1 ) = CHR ( ( ORD ( BRIK1$ ( 2 ) ) - 49 ) * 5 + 35 )
 0390   LET BRIK$ ( 2 ) = CHR ( ( ORD ( BRIK1$ ( 1 ) ) - 65 ) * 10 + 57 )
 0400   IF USER <= 6 THEN GOTO 0430
 0410   LET BRIK3$ ( 1 ) = CHR ( ( ORD ( BRIK2$ ( 2 ) ) - 49 ) * 5 + 35 )
 0420   LET BRIK3$ ( 2 ) = CHR ( ( ORD ( BRIK2$ ( 1 ) ) - 65 ) * 10 + 57 )
 0430   EXEC KONTROL
 0440   IF S = 1 THEN GOTO 0350
 0450   PRINT "<27>=" ; BRIK3$ ; "<9><9>  <10><8><8>  "
 0460   EXEC BPLAC
 0470   EXEC S\G
 0480   GOTO 0330
 0490 ENDPROC
 0500 PROC BRIK
 0510   ON ESC THEN GOTO 0520
 0520   PRINT "<27>=<34>YI HVILKET FELT VIL DU<27>=#Y" ;
 0530   INPUT "PLACERE DIN BRIK " , BRIK1$ ;
 0540   DELAY = 1
 0550   PRINT "<8><8> "
 0560   LET S = 0
 0570   IF ORD ( BRIK1$ ( 1 ) ) - 64 < 1 OR ORD ( BRIK1$ ( 1 ) ) - 64 > 3 THEN EXEC FEJLT
 0580   IF S = 1 THEN GOTO 0520
 0590   IF ORD ( BRIK1$ ( 2 ) ) - 48 < 1 OR ORD ( BRIK1$ ( 2 ) ) - 48 > 3 THEN EXEC FEJLT
 0600   IF S = 1 THEN GOTO 0520
 0610   RESET ESC
 0620 ENDPROC
 0630 PROC BPLAC
 0640   IF USER MOD 2 THEN PRINT "<27>=" ; BRIK$ ; "OO<10><8><8>OO"
 0650   IF NOT USER MOD 2 THEN PRINT "<27>=" ; BRIK$ ; "XX<10><8><8>XX"
 0660 ENDPROC
 0670 PROC BR[T
 0680   PRINT "<26>"
 0690   FOR X = 0 TO 15
 0700     IF X MOD 5 THEN
 0710       PRINT TAB ( 20 ) ;
 0720       PRINT " <29>  <28>        <29>  <28>        <29>  <28>        <29>  <28>"
 0730     ELSE 
 0740       PRINT TAB ( 21 ) ; "<29>                                <28>"
 0750     ENDIF 
 0760   NEXT 
 0770   PRINT "<10>" ; TAB ( 27 ) ; "A" ; TAB ( 37 ) ; "B" ; TAB ( 47 ) ; "C<30><10><10><10>"
 0780   PRINT TAB ( 16 ) ; "1<10><10><10><10><10><8>2<10><10><10><10><10><8>3"
 0790 ENDPROC
 0800 PROC TERM
 0810   IF SYS ( 4 ) <> 3 THEN
 0820     PRINT "<27><12>"
 0830     DELAY = 1
 0840     PRINT "<10><10><10><10><10>"
 0850     PRINT TAB ( 15 ) ; "DETTE PROGRAM KAN KUN BRUGES PÅ TERMINAL 3"
 0860     NEW 
 0870   ENDIF 
 0880 ENDPROC
 0890 PROC KONTROL
 0900   IF USER <= 6 THEN
 0910     LET BRIK ( 1 ) = ORD ( BRIK1$ ( 2 ) ) - 48 BRIK ( 2 ) = ORD ( BRIK1$ ( 1 ) ) - 64
 0920     IF USER MOD 2 THEN
 0930       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 1 OR A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 2 THEN EXEC FEJLT
 0940       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0 THEN LET A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 1
 0950     ELSE 
 0960       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 1 OR A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 2 THEN EXEC FEJLT
 0970       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0 THEN LET A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 2
 0980     ENDIF 
 0990   ELSE 
 1000     LET BRIK ( 1 ) = ORD ( BRIK2$ ( 2 ) ) - 48 BRIK ( 2 ) = ORD ( BRIK2$ ( 1 ) ) - 64
 1010     LET BRIK1 ( 1 ) = ORD ( BRIK1$ ( 2 ) ) - 48 BRIK1 ( 2 ) = ORD ( BRIK1$ ( 1 ) ) - 64
 1020     IF USER MOD 2 THEN
 1030       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0 OR A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 2 THEN EXEC FEJLT
 1040       IF S = 1 THEN GOTO 1180
 1050       IF A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 1 OR A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 2 THEN EXEC FEJLT
 1060       IF S = 1 THEN GOTO 1180
 1070       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 1 THEN LET A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0
 1080       IF A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 0 THEN LET A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 1
 1090     ELSE 
 1100       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0 OR A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 1 THEN EXEC FEJLT
 1110       IF S = 1 THEN GOTO 1180
 1120       IF A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 1 OR A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 2 THEN EXEC FEJLT
 1130       IF S = 1 THEN GOTO 1180
 1140       IF A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 2 THEN LET A ( BRIK ( 1 ) , BRIK ( 2 ) ) = 0
 1150       IF A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 0 THEN LET A ( BRIK1 ( 1 ) , BRIK1 ( 2 ) ) = 2
 1160     ENDIF 
 1170   ENDIF 
 1180 ENDPROC
 1190 PROC FEJLT
 1200   PRINT "<7><7><7><7><7><7><7><7><7><7><7><7><7><7><7>"
 1210   LET S = 1
 1220   PRINT "<27>=0YULOVLIGT TRÆK !!" ;
 1230   DELAY = 3
 1240   PRINT "<8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>                 "
 1250 ENDPROC
 1260 PROC TUR
 1270   IF USER MOD 2 THEN LET NAVN$ = NAVN1$
 1280   IF NOT USER MOD 2 THEN LET NAVN$ = NAVN2$
 1290   LET BOG = LEN ( NAVN$ )
 1300   IF NAVN$ ( BOG ) = "S" THEN
 1310     PRINT "<27>=57" ; NAVN$ ; "' TUR TIL AT TRÆKKE               "
 1320   ELSE 
 1330     PRINT "<27>=57" ; NAVN$ ; "S TUR TIL AT TRÆKKE               "
 1340   ENDIF 
 1350 ENDPROC
 1360 PROC NAVN
 1370   PRINT "<26><10><10><10><10><10><10><10>"
 1380   PRINT TAB ( 20 ) ; "********************************"
 1390   PRINT TAB ( 20 ) ; "**                            **"
 1400   PRINT TAB ( 20 ) ; "**      KRYDS OG BOLLE        **"
 1410   PRINT TAB ( 20 ) ; "**                            **"
 1420   PRINT TAB ( 20 ) ; "********************************"
 1430   PRINT "<10><10><10><10><10>"
 1440   PRINT "DEN DER SKAL HAVE BOLLERNE, SKAL INDTASTE SIT NAVN FØRST"
 1460   INPUT "NAVNENE PÅ SPILLERNE: " , NAVN1$ , " OG " , NAVN2$
 1470 ENDPROC
 1480 PROC S\G
 1490   FOR X = 1 TO 3
 1500     IF A ( X , 1 ) <> 0 AND ( A ( X , 1 ) = A ( X , 2 ) AND A ( X , 2 ) = A ( X , 3 ) ) THEN EXEC SLUT
 1510   NEXT 
 1520   FOR Y = 1 TO 3
 1530     IF A ( 1 , Y ) <> 0 AND ( A ( 1 , Y ) = A ( 2 , Y ) AND A ( 2 , Y ) = A ( 3 , Y ) ) THEN EXEC SLUT
 1540   NEXT 
 1550   IF A ( 1 , 1 ) <> 0 AND A ( 1 , 1 ) = A ( 2 , 2 ) AND A ( 2 , 2 ) = A ( 3 , 3 ) THEN EXEC SLUT
 1560   IF A ( 1 , 3 ) <> 0 AND A ( 1 , 3 ) = A ( 2 , 2 ) AND A ( 2 , 2 ) = A ( 3 , 1 ) THEN EXEC SLUT
 1570 ENDPROC
 1580 PROC SLUT
 1590   PRINT "<7> <7> <7> <7> <7> <7> <7> <7> <7> <7>"
 1600   PRINT "<27>=57" ; NAVN$ ; " HAR VUNDET !!         "
 1610   END «nul»
 1620 ENDPROC

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] = 0x00ba
      stack[1] = 0x01ce
      stack[2] = 0x02c3
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 5.14756e-85   (0x00000001)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x009c
      Loop Top = 0x07a6
      To Val = 3   (0x41300000)
      Step Val = 1   (0x41100000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
    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 0xffff 0x02 NAVN$
    0x82 0xffff 0x02 NAVN1$
    0x83 0xffff 0x02 NAVN2$
    0x84 0xffff 0x02 BRIK$
    0x85 0xffff 0x02 BRIK1$
    0x86 0xffff 0x02 BRIK2$
    0x87 0xffff 0x02 BRIK3$
    0x88 0xffff 0x00 BRIK
    0x89 0xffff 0x00 BRIK1
    0x8a 0xffff 0x00 BRIK2
    0x8b 0xffff 0x00 BRIK3
    0x8c 0xffff 0x00 A
    0x8d 0xffff 0x00 TERM
    0x8e 0xffff 0x00 NAVN
    0x8f 0xffff 0x00 BR[T
    0x90 0xffff 0x00 KOORD
    0x91 0xffff 0x00 FLYT
    0x92 0x0004 0x00 S
    0x93 0xffff 0x00 FEJLT
    0x94 0xffff 0x00 USER
    0x95 0xffff 0x00 TUR
    0x96 0xffff 0x00 KONTROL
    0x97 0xffff 0x00 BPLAC
    0x98 0xffff 0x00 S\G
    0x99 0xffff 0x00 X
    0x9a 0xffff 0x00 BOG
    0x9b 0xffff 0x00 SLUT
    0x9c 0xffff 0x00 Y
    0x9d 0xffff 0x00 YK
    0x9e 0x0000 0x00 T
    0x9f 0x0002 0x00 M

Wrapper

.magic = 0x4e32
.u_pas = 0x0858  // Length of UPAS in words
.u_das = 0x010e  // Length of UDAS in words
.u_dvs = 0x0108  // Start på savede variabel indhold (word adr)
.u_nds = 0x0081  // Address på næste prog.sætning (word adr)
.u_cps = 0x006d  // Address på curr prog.sætning (word adr)
.u_tll = 0x0000  // Page størrelse
.u_tts = 0x000e  // TAP størrelse
.u_ran = 0x0001  // Random tal
.u_cdl = 0x0006  // Current DATA sætning ptr
.u_cdb = 0x0000  // 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)