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

⟦23785f035⟧ COMAL_SAVE

    Length: 1280 (0x500)
    Types: COMAL_SAVE
    Notes: BASIC::CB22, CB22    
    Names: »CB22«

Derivation

└─⟦714f3848e⟧ Bits:30006597 ALM Copy 24.9.79
    └─⟦this⟧ 

UPAS Segment

SAVE filename: "CB22"

 0002 DIM A$ ( 20 )
 0003 CLOSE
 0005 LET U = 341 ANTALREC = 341
 0010 DIM TURNR ( U ) , TID ( U )
 0015 MAT TID = ZER
 0020 OPEN FILE ( 0 , 4 ) "CB2RAN"
 0030 LET LAST = 0
 0040 FOR I = 1 TO ANTALREC
 0050   READ FILE ( 0 , I ) B
 0051   LET A = I
 0055   PRINT I ;
 0060   IF B < 600 THEN GOTO 0200
 0070   LET MIN = 1 MAX = LAST + ( LAST = 0 ) MIDT = LAST * ( B > TID ( 1 ) ) DIV ( 2 - ( B >= TID ( MAX ) ) )
 0080   IF B <= TID ( 1 ) OR B >= TID ( MAX ) THEN GOTO 0160
 0090   WHILE TID ( MIDT ) >= B OR B > TID ( MIDT + 1 ) DO
 0100     IF B > TID ( MIDT ) THEN
 0110       LET MIN = MIDT MIDT = ( MAX + MIDT ) DIV 2
 0120     ELSE 
 0130       LET MAX = MIDT MIDT = ( MIN + MIDT ) DIV 2
 0140     ENDIF 
 0150   ENDWHILE
 0160   FOR J = LAST TO MIDT + 1 STEP - 1
 0170     LET TID ( J + 1 ) = TID ( J ) TURNR ( J + 1 ) = TURNR ( J )
 0180   NEXT 
 0190   LET TID ( MIDT + 1 ) = B TURNR ( MIDT + 1 ) = A LAST = LAST + 1
 0200 NEXT 
 0220 OPEN FILE ( 1 , 0 ) "CB2RAN2"
 0230 FOR I = 1 TO LAST
 0240   READ FILE ( 0 , TURNR ( I ) ) N , A$
 0245   GOTO 0255
 0250   WRITE FILE ( 1 , I ) TID ( I ) , A$
 0255   PRINT I , TID ( I ) , A$
 0260 NEXT 
 0270 CLOSE
 0300 PROC UD
 0310   FOR ] = 1 TO LAST
 0320     PRINT TID ( ] ) ;
 0330   NEXT 
 0340   PRINT
 0350 ENDPROC

UDAS Segment

    FNA definition = 0x0000
    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] = 0x0132
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0084
      Loop Top = 0x007e
      To Val = 341   (0x43155000)
      Step Val = 1   (0x41100000)
      Var# = 0x008c
      Loop Top = 0x0100
      To Val = 2   (0x41200000)
      Step Val = -1   (0xc1100000)
      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] = 0x00bf
      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] = 0x0001
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0xffff 0x00 TURNR
    0x82 0xffff 0x00 TID
    0x83 0xffff 0x00 LAST
    0x84 0xffff 0x00 I
    0x85 0xffff 0x00 ANTALREC
    0x86 0xffff 0x00 A
    0x87 0xffff 0x00 B
    0x88 0xffff 0x00 MIN
    0x89 0xffff 0x00 MAX
    0x8a 0xffff 0x00 MIDT
    0x8b 0xffff 0x00 MAS
    0x8c 0xffff 0x00 J
    0x8d 0xffff 0x00 LISR
    0x8e 0xffff 0x00 LIAT
    0x8f 0xffff 0x00 UD
    0x90 0xffff 0x00 ]
    0x91 0xffff 0x00 U
    0x92 0xffff 0x00 LIDST
    0x93 0xffff 0x00 LUST
    0x94 0xffff 0x00 LASTREC
    0x95 0xffff 0x00 LISY
    0x96 0xffff 0x00 LST
    0x97 0xffff 0x00 SLIT
    0x98 0xffff 0x00 STOP]
    0x99 0xffff 0x00 N
    0x9a 0xffff 0x02 A$

Wrapper

.magic = 0x5356
.u_pas = 0x0182  // Length of UPAS in words
.u_das = 0x00ef  // Length of UDAS in words
.u_dvs = 0x00ef  // Start på savede variabel indhold (word adr)
.u_nds = 0x0042  // Address på næste prog.sætning (word adr)
.u_cps = 0x0042  // 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 = 0x0042  // Current DATA sætning ptr
.u_cdb = 0x0000  // Current DATA byte ptr
.u_esa = 0xffff  // ON ESE (word adr)
.u_era = 0xffff  // ON ERR (word adr)
.u_cas = 0x0000  // CASE dybde
.u_las = 0xffff  // last (-1)