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

⟦235f59960⟧ COMAL_SAVE

    Length: 6056 (0x17a8)
    Types: COMAL_SAVE

Derivation

└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
    └─ ⟦93f569b25⟧ »/DOMLI « 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "DOMLI"

 0005 REM  +-------------------------------------------------------+«nul»-
 0006 REM  !          LIST/CORE PROBLEM LØST (??)                  !«nul»-
 0007 REM  !          HVIS IGEN PROBLEMER FJERN DA SÆTN.  945      !«nul»-
 0008 REM  +-------------------------------------------------------+«nul»-
 0010 REM  06-01-82 RE POUL-HENNING KAMP                              «si»«so»DOMLI«nul»
 0020 REM  GAMLE DOMLI+CALLI+NY LIST/UNIT«nul»
 0030 REM  STADIG PROBLEMER MED LIST/CORE«nul»
 0040 REM  NU INDEHOLDER PROGRAMMET:«nul»C
 0050 REM  LIST/PROCESS«nul»
 0060 REM       LIST/PROGRAM«nul»R
 0070 REM            LIST/CORE«nul»M
 0080 REM                 LIST/UNIT«nul»
 0090 REM                      LIST/CALL«nul»«nul»
 0100 TAB = 7
 0110 PAGE = 132
 0120 PROC NAMEPR
 0130   CALL "GMEM" , HEAD + 4 , NAME1
 0140   CALL "GMEM" , HEAD + 5 , NAME2
 0150   CALL "GMEM" , HEAD + 6 , NAME3
 0160   PRINT CHR ( NAME1 DIV 256 + 32 * ( NAME1 DIV 256 = 0 ) ) ;
 0170   PRINT CHR ( NAME1 MOD 256 + 32 * ( NAME1 MOD 256 = 0 ) ) ;
 0180   PRINT CHR ( NAME2 DIV 256 + 32 * ( NAME2 DIV 256 = 0 ) ) ;
 0190   PRINT CHR ( NAME2 MOD 256 + 32 * ( NAME2 MOD 256 = 0 ) ) ;
 0200   PRINT CHR ( NAME3 DIV 256 + 32 * ( NAME3 DIV 256 = 0 ) ) ;
 0210 ENDPROC
 0220 PRINT "<14> DOMUS LIST         ##/##/##  ##:##" , SYS ( 1 ) , SYS ( 2 ) , SYS ( 3 ) , SYS ( 11 ) , SYS ( 12 )
 0230 PRINT "<13><10><10><14> LIST/PROGRAM"
 0240 PRINT "PROG." , " PROG." , " START" , " SIZE" , "PROG. DESCRIPTOR"
 0250 PRINT "NAME" , " HEAD" , " ADR."
 0260 REM *******************************************************************«nul»
 0270 REM *********************  LIST/PROGRAM  ******************************«nul»
 0280 REM *******************************************************************«nul»
 0290 PRINT "--------------------------------------------"
 0300 CALL "GMEM" , 42 , HEAD
 0310 REPEAT 
 0320   CALL "GMEM" , HEAD , PSPEC
 0330   CALL "GMEM" , HEAD + 1 , PSTART
 0340   CALL "GMEM" , HEAD + 2 , PCHAIN
 0350   CALL "GMEM" , HEAD + 3 , PSIZE
 0360   EXEC NAMEPR
 0370   PRINT ,
 0380   IF NAME1 = 17487 AND NAME2 = 19797 AND NAME3 = 21248 THEN LET CHEAD = PSTART - 2
 0390   PRINT HEAD , PSTART , PSIZE ,
 0400   FOR I = 15 TO 0 STEP - 1
 0410     PRINT CHR ( 48 + PSPEC DIV 2 ^ I MOD 2 ) ;
 0420   NEXT 
 0430   PRINT
 0440   LET HEAD = PCHAIN
 0450 UNTIL HEAD = 0
 0460 REM *****************************************************************«nul»
 0470 REM **********************  LIST/PROCESS  ***************************«nul»
 0480 REM *****************************************************************«nul»
 0490 PRINT "<13><10><10><14> LIST/PROCESS"
 0500 PRINT "PROC." , " PROC." , "PROG." , " STATE" , " BRK." , " PRIO-" , " NO OF" , " BUF." , " I/O" , "RESERVER"
 0510 PRINT "NAME" , " HEAD" , "NAME" , , " ADR." , " RITY" , " BUF'S" , " HEAD" , " ADR."
 0520 PRINT "-----------------------------------------------------------------------"
 0530 CALL "GMEM" , 34 , HEAD
 0540 REPEAT 
 0550   CALL "GMEM" , HEAD + 2 , PCHAIN
 0560   CALL "GMEM" , HEAD + 9 , BUFFE
 0570   CALL "GMEM" , HEAD + 10 , PROG
 0580   CALL "GMEM" , HEAD + 13 , PRIOR
 0590   CALL "GMEM" , HEAD + 14 , BREAD
 0600   CALL "GMEM" , HEAD + 11 , STATE
 0610   EXEC NAMEPR
 0620   PRINT ,
 0630   PRINT HEAD ,
 0640   LET MDL1 = HEAD ; MDL2 = BUFFE ; I = 0 ; DRIV = - 1 ; HEAD = PROG
 0650   EXEC NAMEPR
 0660   PRINT ,
 0670   PRINT STATE , BREAD , PRIOR ,
 0680   WHILE MDL2 <> 0 DO
 0690     CALL "GMEM" , MDL2 + 2 , MDL2
 0700     LET I = I + 1
 0710   ENDWHILE
 0720   PRINT I , BUFFE ,
 0730   FOR I = 248 TO 312
 0740     CALL "GMEM" , I , MDL2
 0750     LET MDL2 = MDL2 / 2
 0760     IF MDL1 = MDL2 THEN LET DRIV = I - 248 ; I = 312
 0770   NEXT 
 0780   IF DRIV <> - 1 THEN
 0790     CALL "GMEM" , MDL1 + 24 , HEAD
 0800     PRINT DRIV ,
 0810     IF HEAD <> 0 THEN
 0820       EXEC NAMEPR
 0830     ENDIF 
 0840   ENDIF 
 0850   PRINT
 0860   LET HEAD = PCHAIN
 0870 UNTIL HEAD = 0
 0880 REM *******************************************************************«nul»
 0890 REM *******************  LIST/CORE  ***********************************«nul»
 0900 REM *******************************************************************«nul»
 0910 PRINT "<10><10><13><14> LIST/CORE"
 0920 PRINT "ITEM" , " CORE" , "OWNER" , " SIZE" , "N/X" , " CURR." , " XITEM"
 0930 PRINT "NAME" , " ADR." , "PROC." , , "ITEM" , " LADR." , " ADR."
 0940 PRINT "------------------------------------------------"
 0945 LET CHEAD = CHEAD - 2
 0950 CALL "GMEM" , CHEAD , HEAD
 0960 REPEAT 
 0970   CALL "GMEM" , HEAD - 1 , IDENT
 0980   CALL "GMEM" , HEAD , OWNER
 0990   CALL "GMEM" , HEAD + 1 , LADR
 1000   CALL "GMEM" , HEAD + 2 , PCHAIN
 1010   CALL "GMEM" , HEAD + 3 , PSIZE
 1020   EXEC NAMEPR
 1030   PRINT HEAD ,
 1040   LET HEAD = OWNER
 1050   EXEC NAMEPR
 1060   PRINT PSIZE ,
 1070   IF IDENT = 65535 THEN
 1080     PRINT "XITEM" ,
 1090   ELSE 
 1100     PRINT "NITEM" ,
 1110   ENDIF 
 1120   IF LADR <> 0 THEN
 1130     PRINT LADR ,
 1140   ELSE 
 1150     PRINT ,
 1160   ENDIF 
 1170   IF IDENT <> 65535 AND IDENT <> 0 THEN PRINT IDENT ,
 1180   PRINT
 1190   LET HEAD = PCHAIN
 1200 UNTIL HEAD = 0
 1210 REM  ********************************************************«nul»
 1220 REM  ************************* LIST/UNIT ********************«nul»
 1230 REM  ********************************************************«nul»
 1240 LET A = 40
 1250 CALL "GMEM" , A + 2 , A
 1260 CALL "GMEM" , A + 4 , B
 1270 IF B <> 17217 THEN GOTO 1250
 1280 CALL "GMEM" , A + 5 , B
 1290 IF B <> 21591 THEN GOTO 1250
 1300 CALL "GMEM" , A + 10 , X
 1310 PRINT "<13><10><10><14> LIST/UNIT"
 1320 PRINT "UNIT DRIVER      SYS  SLICE  NO OF  FIRST   LAST OFFSET   FREE"
 1330 PRINT "NO   NAME       SIZE   SIZE  D-SECT D-SECT  SECT         SECTS"
 1340 PRINT "--------------------------------------------------------------"
 1350 REPEAT 
 1360   LET B = X + 4
 1370   CALL "GMEM" , B , C
 1380   CALL "GMEM" , B + 2 , C
 1390   PRINT "<60>##> " , C DIV 256 ;
 1400   LET HEAD = B - 1
 1410   EXEC NAMEPR
 1420   PRINT "   " ;
 1430   FOR B = 1 TO 7
 1440     READ D
 1450     CALL "GMEM" , X + D , C
 1460     PRINT "  #####" , C ;
 1470   NEXT 
 1480   PRINT
 1490   RESTORE 0000
 1500   CALL "GMEM" , X + 2 , X
 1510 UNTIL NOT X
 1520 DATA 12 13 14 16 17 11 15
 1530 REM  *****************************************************************«nul»«nul»
 1540 REM  ********************** LIST/CALL ********************************«nul»«nul»
 1550 REM  *****************************************************************«nul»«nul»
 1560 RESTORE 1980
 1570 PRINT "<13><10><10><14> LIST/CALL"
 1580 PRINT "NAME       ADRESS  PARAMETERS"
 1590 PRINT "-------------------------------------------------------------------------"
 1600 CALL "GMEM" , 160 , EXECUTE
 1610 FOR V = 1 TO 2
 1620   READ DIFFEREN
 1630   CALL "GMEM" , EXECUTE + DIFFEREN , CRA
 1640   REPEAT 
 1650     LET HEAD = CRA - 3
 1660     EXEC NAMEPR
 1670     PRINT CHR ( NAME3 MOD 256 + 32 * ( NAME3 MOD 256 = 0 ) ) ;
 1680     CALL "GMEM" , HEAD + 7 , NAME4
 1690     PRINT CHR ( NAME4 DIV 256 + 32 * ( NAME4 DIV 256 = 0 ) ) ;
 1700     PRINT CHR ( NAME4 MOD 256 + 32 * ( NAME4 MOD 256 = 0 ) ) ;
 1710     CALL "GMEM" , CRA , ADC
 1720     PRINT "   #####   " , ADC ;
 1730     CALL "GMEM" , ADC , ANTAL
 1740     FOR II = 1 TO ANTAL
 1750       CALL "GMEM" , ADC + II , TYPE
 1760       CASE TYPE OF
 1770         PRINT ",param(" ; TYPE ; ")" ;
 1780       WHEN 32768
 1790         PRINT ",talvariab" ;
 1800       WHEN 32771
 1810         PRINT ",txtvariab" ;
 1820       WHEN 67
 1830         PRINT ",txtmatrix" ;
 1840       WHEN 64
 1850         PRINT ",talmatrix" ;
 1860       WHEN 3
 1870         PRINT ",txtudtryk" ;
 1880       WHEN 0
 1890         PRINT ",taludtryk" ;
 1900       ENDCASE «nul»
 
 1910     NEXT 
 1920     PRINT
 1930     LET CRA = CRA + 5
 1940     CALL "GMEM" , CRA , ADC
 1950   UNTIL ADC = 0
 1960 NEXT 
 1970 END «nul»
 1980 DATA 13907 13908

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] = 0x0650
      stack[1] = 0x0821
      stack[2] = 0x0554
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0616
      Loop Top = 0x0817
      To Val = 1.28534e-74   (0x035d0512)
      Step Val = 5.30606e-73   (0x050f0000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 4.17852e-73   (0x04bd0000)
      Step Val = 0   (0x00000000)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x0001
      Loop Top = 0x0001
      To Val = 3.37355e-80   (0x00010001)
      Step Val = 3.3735e-80   (0x00010000)
      Var# = 0x0089
      Loop Top = 0x04dd
      To Val = 312   (0x43138000)
      Step Val = 1   (0x41100000)
      Var# = 0x00ba
      Loop Top = 0x08fa
      To Val = 3   (0x41300000)
      Step Val = 1   (0x41100000)
      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 0x00 A
    0x82 0xffff 0x00 B
    0x83 0xffff 0x00 C
    0x84 0xffff 0x00 D
    0x85 0xffff 0x00 E
    0x86 0xffff 0x00 F
    0x87 0xffff 0x00 G
    0x88 0xffff 0x00 H
    0x89 0xffff 0x00 I
    0x8a 0xffff 0x00 J
    0x8b 0xffff 0x00 ]
    0x8c 0xffff 0x00 N
    0x8d 0xffff 0x00 NAMEPR
    0x8e 0xffff 0x00 BGH
    0x8f 0xffff 0x00 BDG
    0x90 0xffff 0x00 DRIV
    0x91 0xffff 0x00 DFG
    0x92 0xffff 0x00 FGH
    0x93 0xffff 0x00 GHJ
    0x94 0xffff 0x00 HJK
    0x95 0xffff 0x00 CLINT
    0x96 0xffff 0x00 ASD
    0x97 0xffff 0x00 SDF
    0x98 0xffff 0x00 RESER
    0x99 0xffff 0x00 ADR
    0x9a 0xffff 0x00 LI
    0x9b 0xffff 0x00 PRIOR
    0x9c 0xffff 0x00 BREAD
    0x9d 0xffff 0x00 STATE
    0x9e 0xffff 0x00 HEAD
    0x9f 0xffff 0x00 NAME1
    0xa0 0xffff 0x00 NAME2
    0xa1 0xffff 0x00 NAME3
    0xa2 0xffff 0x00 PSPEC
    0xa3 0xffff 0x00 PSTART
    0xa4 0xffff 0x00 PCHAIN
    0xa5 0xffff 0x00 PSIZE
    0xa6 0xffff 0x00 BUFFE
    0xa7 0xffff 0x00 PROG
    0xa8 0xffff 0x00 MDL
    0xa9 0xffff 0x00 MDL1
    0xaa 0xffff 0x00 MDL2
    0xab 0xffff 0x00 SCHAIN
    0xac 0xffff 0x00 CONVT
    0xad 0xffff 0x00 IDENT
    0xae 0xffff 0x00 OWNER
    0xaf 0xffff 0x00 LADR
    0xb0 0xffff 0x00 CHEAD
    0xb1 0xffff 0x00 RUN[L
    0xb2 0xffff 0x00 HCORE
    0xb3 0xffff 0x00 X
    0xb4 0xffff 0x00 EXECUTE
    0xb5 0xffff 0x00 V
    0xb6 0xffff 0x00 DIFFEREN
    0xb7 0xffff 0x00 CRA
    0xb8 0xffff 0x00 ADC
    0xb9 0xffff 0x00 ANTAL
    0xba 0xffff 0x00 II
    0xbb 0xffff 0x00 TYPE
    0xbc 0xffff 0x00 NAME4
    0xbd 0xffff 0x00 LIST3090

Wrapper

.magic = 0x4e32
.u_pas = 0x0a27  // Length of UPAS in words
.u_das = 0x019e  // Length of UDAS in words
.u_dvs = 0x019e  // 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 = 0x0084  // Page størrelse
.u_tts = 0x0007  // 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)