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

⟦57af034a2⟧ COMAL_SAVE

    Length: 2528 (0x9e0)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦ecbdcacc2⟧ »/RTAB« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "RTAB"

 0010 PRINT "<27><12>"
 0020 DELAY = 1
 0025 DIM Q$ ( 100 )
 0030 OPEN FILE ( 0 , 1 ) "ANT"
 0040 READ FILE ( 0 ) M , N , COUNT
 0050 CLOSE FILE ( 0 )
 0060 DIM S1$ ( M + N , 10 ) , B$ ( M + N , 75 ) , S2$ ( N , 10 ) , F$ ( N , 75 )
 0070 OPEN FILE ( 1 , 1 ) "PRNT"
 0080 FOR I = 1 TO M + N
 0090   READ FILE ( 1 ) S1$ ( I ) , B$ ( I )
 0100 NEXT 
 0110 FOR I = 1 TO N
 0120   READ FILE ( 1 ) S2$ ( I ) , F$ ( I )
 0130 NEXT 
 0140 CLOSE FILE ( 1 )
 0150 DIM BC ( N )
 0160 PRINT "ANF0R ANTALLET AF 0NSKEDE BETYDENDE CIFRE (MELLEM 1 OG 5)"
 0165 PRINT
 0170 FOR I = 1 TO N
 0172   IF S2$ ( I ) = "QWZQ" THEN
 0173     LET Q$ = F$ ( I )
 0175     LET S2$ ( I ) = Q$ ( 2 , LEN ( Q$ ) ) ; F$ ( I ) = ""
 0178   ENDIF 
 0180   PRINT " I " ; S2$ ( I ) ,
 0190   INPUT BC ( I )
 0195   LET BC ( I ) = INT ( BC ( I ) )
 0200   IF ( BC ( I ) < 1 ) + ( BC ( I ) > 5 ) THEN GOTO 0190
 0210 NEXT 
 0220 PRINT "<27><12>"
 0230 DELAY = 1
 0240 PRINT
 0250 PRINT
 0260 PRINT "SYMBOLLISTE:"
 0280 PRINT
 0290 FOR I = 1 TO M + N
 0292   IF S1$ ( I ) = "" THEN GOTO 0310
 0295   IF B$ ( I ) = "" THEN PRINT S1$ ( I )
 0300   IF ( S1$ ( I ) <> "" ) * ( B$ ( I ) <> "" ) THEN PRINT S1$ ( I ) ; ": " ; B$ ( I )
 0310 NEXT 
 0320 PRINT
 0330 PRINT
 0340 PRINT "ANVENDTE FORMLER:"
 0360 PRINT
 0362 LET J = 1
 0370 FOR I = 1 TO N
 0372   IF F$ ( I ) = "" THEN GOTO 0390
 0380   PRINT "(" ; J ; ")    " ; S2$ ( I ) ; F$ ( I )
 0382   LET J = J + 1
 0390 NEXT 
 0410 PRINT
 0420 PRINT
 0421 OPEN FILE ( 0 , 1 ) "STORE"
 0425 LET C0 = 1
 0430 LET C1 = M * ( M <= 5 ) + 5 * ( M > 5 )
 0440 LET C2 = ( M + N ) * ( M + N <= 5 ) + 5 * ( M + N > 5 )
 0450 EXEC TABEL
 0452 CLOSE FILE ( 0 )
 0460 IF C2 = M + N THEN GOTO 0700
 0462 PRINT
 0463 PRINT
 0464 PRINT
 0465 OPEN FILE ( 0 , 1 ) "STORE"
 0470 LET C0 = 6
 0480 LET C1 = 5 * ( M <= 5 ) + M * ( M > 5 )
 0490 LET C2 = ( M + N ) * ( M + N <= 10 ) + 10 * ( M + N > 10 )
 0500 EXEC TABEL
 0502 CLOSE FILE ( 0 )
 0510 IF C2 = M + N THEN GOTO 0700
 0512 PRINT
 0513 PRINT
 0514 PRINT
 0515 OPEN FILE ( 0 , 1 ) "STORE"
 0520 LET C0 = 11 ; C1 = 10 ; C2 = M + N
 0530 EXEC TABEL
 0540 CLOSE FILE ( 0 )
 0700 END «nul»
 1000 PROC TABEL
 1010   FOR I = C0 TO C1
 1020     IF ( I <> 5 ) * ( I <> 10 ) * ( I <> 15 ) THEN PRINT " " ; S1$ ( I ) ,
 1030     IF ( I = 5 ) + ( I = 10 ) + ( I = 15 ) THEN PRINT " " ; S1$ ( I )
 1040   NEXT 
 1050   FOR I = ( C1 - M ) * ( C1 > M ) + 1 TO C2 - M
 1052     LET Q$ = S2$ ( I )
 1055     IF Q$ ( 1 ) = "=" THEN LET S2$ ( I ) = Q$ ( 2 , LEN ( Q$ ) )
 1060     IF I < C2 - M THEN PRINT " " ; S2$ ( I ) ,
 1070     IF I = C2 - M THEN PRINT " " ; S2$ ( I )
 1080   NEXT 
 1090   PRINT
 1100   FOR I = 1 TO COUNT
 1110     FOR J = 1 TO M + N
 1115       READ FILE ( 0 ) X
 1120       IF ( J >= C0 ) * ( J <= C1 ) THEN PRINT X ,
 1130       IF ( J > C1 ) * ( J <= C2 ) THEN EXEC AFRND
 1140     NEXT 
 1150   NEXT 
 1160 ENDPROC
 1500 PROC AFRND
 1505   LET P = 0
 1510   IF X >= 0.1 THEN
 1520     WHILE X >= 1 DO
 1530       LET X = X / 10
 1540       LET P = P + 1
 1550     ENDWHILE
 1600   ELSE 
 1605     IF X = 0 THEN GOTO 1645
 1610     WHILE X < 0.1 DO
 1620       LET X = X * 10
 1630       LET P = P - 1
 1640     ENDWHILE
 1645   ENDIF 
 1650   LET X1 = X * 10 ^ BC ( J - M )
 1660   LET X1 = X1 + ( X1 - INT ( X1 ) >= 0.5 )
 1670   LET X1 = INT ( X1 )
 1680   LET X = X1 * 10 ^ P / 10 ^ BC ( J - M )
 1690   IF J < C2 THEN PRINT X ,
 1700   IF J = C2 THEN PRINT X
 1710 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] = 0x0000
      stack[1] = 0x0000
      stack[2] = 0x0000
      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 = 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 = 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 = 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 0x0000 0x00 
    0x81 0xffff 0x00 M
    0x82 0xffff 0x00 N
    0x83 0xffff 0x00 COUNT
    0x84 0xffff 0x02 S1$
    0x85 0xffff 0x02 B1$
    0x86 0xffff 0x02 S2$
    0x87 0xffff 0x02 B$
    0x88 0xffff 0x02 F$
    0x89 0xffff 0x00 I
    0x8a 0xffff 0x00 X
    0x8b 0xffff 0x00 Y
    0x8c 0xffff 0x00 BC
    0x8d 0xffff 0x00 DLAY
    0x8e 0xffff 0x00 C
    0x8f 0xffff 0x00 J
    0x90 0xffff 0x00 C1
    0x91 0xffff 0x00 C2
    0x92 0xffff 0x00 TABEL
    0x93 0xffff 0x00 THN
    0x94 0xffff 0x00 C0
    0x95 0xffff 0x00 TH
    0x96 0xffff 0x00 AFRND
    0x97 0xffff 0x00 WEHILE
    0x98 0xffff 0x00 X1
    0x99 0xffff 0x00 P
    0x9a 0xffff 0x00 LI400
    0x9b 0xffff 0x02 Q$

Wrapper

.magic = 0x4e32
.u_pas = 0x03ed  // Length of UPAS in words
.u_das = 0x00f4  // Length of UDAS in words
.u_dvs = 0x00f4  // Start på savede variabel indhold (word adr)
.u_nds = 0x0000  // 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 = 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)