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

⟦9c36ed10a⟧ COMAL_SAVE

    Length: 3498 (0xdaa)
    Types: COMAL_SAVE

Derivation

└─⟦cb4367ef8⟧ Bits:30001782 SG0002 Floppy
    └─ ⟦d70e7087c⟧ »/PLRET« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "PLRE1"

 8000 REM  ARBEJDSPROGRAM TIL CALL-INDKØRING  pl 7.9.80 kl 24  «so»@.LAGRET«nul»«nul»
 8010 REM  pl 9.9.80 /kører/ ld:I / uden sætn 8931 ff osse lager16«nul»A
 8020 REM  PL 7.9.80 lagerudskrivning med rettefacilitet; disass modif af @.lagspe«nul»«nul»
 8040 CALL "KODESPEC"
 8050 RELEASE 
 8060 PROC RAD
 8070   LET I = 0
 8080   REPEAT 
 8090     LET H = X DIV R ; C = X MOD R ; I = I + 1 ; X = H
 8100     LET C = 48 + C + 7 * ( C > 9 )
 8110     LET D$ ( N + 1 - I ) = CHR ( C )
 8120   UNTIL H = 0 OR N < I + 1
 8130 ENDPROC
 8140 DIM T ( 4 ) , CH ( 3 ) , D$ ( 10 ) , NUL$ ( 2 ) , T$ ( 10 )
 8150 DIM TX$ ( 3 , 3 )
 8160 LET TAB1 = 95 ; TAB2 = 3 ; CHVL = 4 ; DADR = 10
 8170 READ T ( 1 ) , T ( 2 ) , T ( 3 ) , T ( 4 ) , CH ( 1 ) , CH ( 2 ) , CH ( 3 )
 8180 DATA 120 76 83 47 10 16 8
 8190 LET TX$ ( 1 ) = "dec" ; TX$ ( 2 ) = "hex" ; TX$ ( 3 ) = "oct"
 8200 CLOSE
 8210 PAGE = 80
 8220 TAB = 7
 8230 REPEAT 
 8250   INPUT "<10><10><7>udskrivning ønskes fra adr " , ADR1
 8260   PRINT "<12>"
 8270   GOTO 8290
 8280   PRINT " ADR  :  DEC   INSTR       (127)          HEX    OCTAL"
 8290   PRINT " adr  : dec    instr       (127)               hex     octal"
 8300   PRINT "----------------------------------------------------------"
 8310   FOR ADR = ADR1 TO ADR1 + DADR
 8320     CALL "GMEM" , ADR , X
 8330     LET D$ = " " ; DAT = X
 8340     IF NOT X THEN
 8350       LET D$ = "        "
 8360     ELSE 
 8370       IF X < 32768 THEN
 8380         IF X > 4095 THEN
 8390           LET D$ = D$ , CHR ( T ( X MOD 32768 DIV 8192 + 1 ) ) , CHR ( 48 + X MOD 8192 DIV 2048 )
 8400         ELSE 
 8410           LET D$ = D$ , CHR ( 32 + 30 * ( X DIV 256 <> 0 ) - 20 * ( X MOD 4096 DIV 2048 ) )
 8420         ENDIF 
 8430         LET D$ = D$ , CHR ( 32 + 16 * ( X DIV 256 <> 0 ) + X MOD 2048 DIV 256 ) ; Y = X MOD 256
 8440         IF X MOD 1024 DIV 256 THEN
 8450           LET D$ = D$ , CHR ( 43 + ( Y DIV 128 ) * 2 ) ; Y = Y + ( Y DIV 128 ) * ( 256 - 2 * Y )
 8460           LET D$ = D$ , CHR ( 48 + Y DIV 10 + ( Y DIV 10 > 9 ) * 7 ) , CHR ( 48 + Y MOD 10 ) , "        "
 8470         ELSE 
 8480           LET D$ = D$ , "+" , CHR ( 32 + 16 * ( Y DIV 100 <> 0 ) + Y DIV 100 ) , CHR ( 48 + Y DIV 10 MOD 10 ) , CHR ( 48 + Y MOD 10 ) , "        "
 8490           LET NO = ( Y DIV 100 = 0 ) + ( Y DIV 10 = 0 )
 8500           IF NO THEN LET NUL$ = "  " ; NUL$ = NUL$ ( 1 , NO )
 8510         ENDIF 
 8520       ELSE 
 8530         LET D$ = D$ , ":" , CHR ( 48 + X MOD 32768 DIV 8192 ) , CHR ( 48 + X MOD 8192 DIV 2048 ) , CHR ( 48 + X MOD 2048 DIV 256 )
 8540         LET D$ = D$ , CHR ( 32 + 16 * ( X MOD 256 <> 0 ) + X MOD 256 DIV 16 + 7 * ( X MOD 256 DIV 16 > 9 ) )
 8550         LET D$ = D$ , CHR ( 32 + 16 * ( X MOD 256 <> 0 ) + X MOD 16 + 7 * ( X MOD 16 > 9 ) ) , "     "
 8560       ENDIF 
 8570     ENDIF 
 8580     PRINT ADR , DAT , D$ ,
 8590     LET Y = X MOD 256 ; X = X DIV 256
 8600     PRINT "<60>### ><60>### > " , X , Y ,
 8610     FOR JJ = 1 TO 2
 8620       IF JJ = 2 THEN LET X = Y
 8630       IF X > 31 AND X < 125 THEN
 8640         PRINT CHR ( X ) ;
 8650       ELSE 
 8660         PRINT "~" ;
 8670       ENDIF 
 8680     NEXT 
 8690     LET R = 16 ; X = DAT ; D$ = " 0000 " ; N = 5
 8700     EXEC RAD
 8710     PRINT "  " ; D$ ;
 8720     LET R = 8 ; X = DAT ; D$ = "   000000 " ; N = 9
 8730     LET T$ = " "
 8740     EXEC RAD
 8750     PRINT D$
 8760   NEXT 
 8770   REPEAT 
 8780     ON ESC THEN LET T$ = ""
 8790     PRINT "<6><19><19>" ;
 8800     INPUT "RETTE ADR " , ADRX , " I REPR (1=dec 2=hex 3=oct) " , CHVL
 8805     PRINT "<26><26><31>"
 8810     IF ADRX * CHVL = 0 OR T$ = "" THEN GOTO 8990
 8820     IF ADRX < ADR1 OR ADRX > ADR1 + DADR THEN GOTO 8800
 8830     PRINT "<6>" ; CHR ( TAB1 ) ; CHR ( TAB2 + ADRX - ADR1 ) ; TX$ ( CHVL ) ;
 8840     INPUT " " , T$
 8850     IF LEN ( T$ ) THEN IF T$ ( 1 ) = " " OR T$ ( LEN ( T$ ) ) = " " THEN GOTO 8840
 8860     LET RAD = CH ( CHVL ) ; C = LEN ( T$ ) ; Y = 0
 8870     PRINT "<6><19><17>" ;
 8880     FOR J = C TO 1 STEP - 1
 8890       LET X = ORD ( T$ ( J ) ) - 48 - 7 * ( T$ ( J ) > "@" )
 8900       LET Y = Y + X * RAD ^ ( C - J )
 8920     NEXT 
 8930     PRINT "<6><19><15><31>" ; TX$ ( CHVL ) ; " " ; T$ ; " = dec " ; Y ; " lagres nu"
 8931     PRINT "<6><19><15><31>" ; TX$ ( CHVL ) ; " " ; T$ ; " = dec" ; Y ;
 8932     IF Y DIV 256 > 31 AND Y DIV 256 < 127 AND ( Y MOD 256 > 31 AND Y MOD 256 < 127 OR Y MOD 256 = 0 ) THEN PRINT " = txt " ; CHR ( Y DIV 256 ) ; CHR ( Y MOD 256 ) ;
 8934     PRINT " lagres nu"
 8940     ON ESC THEN LET D$ = "N"
 8950     INPUT "OK? " , D$
 8960     IF D$ <> "J" THEN GOTO 8790
 8970     CALL "SMEM" , ADRX , Y
 8980     PRINT "D A T A   L A G R E T   ! ! !"
 8990   UNTIL ADRX = 0 OR CHVL = 0 OR T$ = ""
 9000 UNTIL 0
 9010 FOR I = 1 TO 127
 9020   LET J = 1
 9030   PRINT "<6>" ; CHR ( I ) ; CHR ( J ) ; I ; J
 9040 NEXT 

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 RAD
    0x82 0xffff 0x00 I
    0x83 0xffff 0x00 H
    0x84 0xffff 0x00 X
    0x85 0xffff 0x00 R
    0x86 0xffff 0x00 C
    0x87 0xffff 0x02 D$
    0x88 0xffff 0x00 N
    0x89 0xffff 0x00 T
    0x8a 0xffff 0x00 CH
    0x8b 0xffff 0x02 NUL$
    0x8c 0xffff 0x02 T$
    0x8d 0xffff 0x02 TX$
    0x8e 0xffff 0x00 TAB1
    0x8f 0xffff 0x00 TAB2
    0x90 0xffff 0x00 CHVL
    0x91 0xffff 0x00 DADR
    0x92 0xffff 0x00 ADR1
    0x93 0xffff 0x00 ADR
    0x94 0xffff 0x00 DAT
    0x95 0xffff 0x00 Y
    0x96 0xffff 0x00 NO
    0x97 0xffff 0x00 JJ
    0x98 0xffff 0x00 ADRX
    0x99 0xffff 0x00 J

Wrapper

.magic = 0x4e32
.u_pas = 0x05dc  // Length of UPAS in words
.u_das = 0x00ea  // Length of UDAS in words
.u_dvs = 0x00ea  // 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)