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

⟦a295579b0⟧ COMAL_SAVE

    Length: 1414 (0x586)
    Types: COMAL_SAVE

Derivation

└─⟦714f3848e⟧ Bits:30006597 ALM Copy 24.9.79
    └─ ⟦084296e89⟧ »BASIC::C.DISASS« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "@.DISASS"

 0010 DIM INSTR$ ( 256 , 17 ) , SKIP$ ( 8 , 4 ) , CARRY$ ( 4 ) , SHIFT$ ( 4 ) , F$ ( 4 ) , T$ ( 8 ) , OUT$ ( 20 )
 0020 OPEN FILE ( 1 , 1 ) "SYMBFIL"
 0030 FOR I = 1 TO 256
 0040   READ FILE ( 1 ) INSTR$ ( I )
 0050 NEXT 
 0060 FOR I = 1 TO 8
 0070   READ FILE ( 1 ) SKIP$ ( I )
 0080 NEXT 
 0090 CLOSE
 0100 LET CARRY$ = " ZOC" ; SHIFT$ = " LRS" ; F$ = " SCP" ; T$ = "BNBZDNDZ"
 0110 INPUT "OMRÅDE (F,T) : " , A1 , B1
 0120 PRINT "<10><13>DISASSEMBLING AF LAGER FRA:" ; A1 ; " TIL:" ; B1
 0130 FOR I = A1 TO B1
 0140   CALL "GMEM" , I , B
 0150   PRINT "-+##### -+#####  " , I , B ;
 0160   LET OUT$ = INSTR$ ( B DIV 256 + 1 )
 0170   IF B > 32767 THEN
 0180     LET OUT$ ( 4 ) = CARRY$ ( B MOD 64 DIV 16 + 1 )
 0190     LET OUT$ ( 4 + ( OUT$ <> " " ) ) = SHIFT$ ( B MOD 256 DIV 64 + 1 )
 0200     LET OUT$ ( 6 ) = CHR ( 32 + B MOD 16 DIV 8 * 3 )
 0210     LET OUT$ ( 13 , 16 ) = SKIP$ ( B MOD 8 + 1 )
 0220     PRINT OUT$
 0230   ELSE 
 0240     IF B > 24575 THEN
 0250       IF OUT$ ( 1 ) <> "S" AND OUT$ ( 1 ) <> "F" THEN LET OUT$ ( 4 ) = F$ ( B MOD 256 DIV 64 + 1 )
 0260       IF OUT$ ( 1 ) = "S" THEN LET OUT$ ( 4 , 5 ) = T$ ( B MOD 256 DIV 64 + 1 , B MOD 256 DIV 64 + 2 )
 0270       IF OUT$ ( 1 ) = "F" THEN PRINT OUT$
 0280       IF OUT$ ( 1 ) <> "F" THEN PRINT OUT$ , B MOD 64
 0290     ELSE 
 0300       PRINT OUT$ , B MOD 256 - ( B MOD 1024 DIV 256 <> 0 ) * ( B MOD 256 > 127 ) * 256
 0310     ENDIF 
 0320   ENDIF 
 0330 NEXT 
 0340 GOTO 0110

UDAS Segment

    FNA definition = 0x0230
    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# = 0x0087
      Loop Top = 0x00f6
      To Val = 600   (0x43258000)
      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)
      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] = 0x0001
      stack[1] = 0x0001
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0xffff 0x02 INSTR$
    0x82 0xffff 0x02 CARRY$
    0x83 0xffff 0x02 SHIFT$
    0x84 0xffff 0x02 F$
    0x85 0xffff 0x02 T$
    0x86 0xffff 0x02 OUT$
    0x87 0xffff 0x00 I
    0x88 0xffff 0x02 SKIP$
    0x89 0xffff 0x00 LDET
    0x8a 0xffff 0x00 A1
    0x8b 0xffff 0x00 B1
    0x8c 0xffff 0x00 B
    0x8d 0xffff 0x02 OIUT$

Wrapper

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