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

⟦10f48f17a⟧ COMAL_SAVE

    Length: 3812 (0xee4)
    Types: COMAL_SAVE

Derivation

└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
    └─ ⟦4339af32a⟧ »/#SCCP « 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "#SCCP"

 0010 REM  ** CLAUS BRUUN * REV.12.04.79 ** MORTEN MARQUARD * REV.13.10.81 **   PROG : «so» LDFCP«nul»«nul»
 0020 REM               Rev. 05.12.81 KL16.25  v. Morten Marquard 2vmfm«nul»
 0030 PROC L[S
 0040   ON ERR THEN RETURN «nul» 
 0050   FOR PP = 1 TO 8
 0060     READ FILE ( 1 ) CC
 0070     CALL "FIX" , CC , HENT ( PP , 1 ) , HENT ( PP , 2 )
 0080   NEXT 
 0090   RESET ERR
 0100   LET B$ = CHR ( HENT ( 1 , 1 ) DIV 256 ) , [FAIL RENDER FUNC LET f284f37f3241100000f17f41100000f7fd7f4d43100000f6f16ef284f37f6641100000f17f41200000f7fe7f4743100000f6f16ef284f37f0041100000f17f41200000f7fd7f0043100000f6e2][f284f37f3241100000f17f41100000f7fd7f4d43100000f6f16ef284f37f6641100000f17f41200000f7fe7f4743100000f6f16ef284f37f0041100000f17f41200000f7fd7f0043100000f6e2]
 0110   LET B$ = B$ , CHR ( HENT ( 2 , 1 ) DIV 256 )
 0120   IF HENT ( 1 , 1 ) = 0 AND NOT EOF ( 1 ) THEN GOTO 0050
 0130 ENDPROC
 0140 INPUT " Æ : MAX. ANT. FILER V. HEL COPIERING " , [
 0150 INPUT " Ø : MAX. ANT. BYTES PÅ FILERNE " , \
 0160 INPUT " Å : VED ENKELT COPIERING = MAX. ANT. FILER (NORMALT=0) " , ]
 0170 PRINT "<12>>LDFCP<13><10>Logical Disc File Copy Program  Rev.12.04.79<10>"
 0180 DIM P$ ( [ , 5 ) , A$ ( ] , 5 ) , SUBCAT$ ( 2 , 5 ) , S ( \ ) , OUT$ ( 6 ) , ANTBY ( [ ) , HENT ( 8 , 2 ) , B$ ( 5 )
 0190 LET T = - 1 ; P = 0 ; F = 0
 0200 INPUT "Fra SUBCAT : " , SUBCAT$ ( 1 )
 0210 IF SUBCAT$ ( 1 ) = "" THEN GOTO 1020
 0220 INPUT "Til SUBCAT : " , SUBCAT$ ( 2 ) , " Kode : " , K
 0230 INPUT "Ud-fil (kontrol udskrift) : " , OUT$
 0240 INPUT "Copy : Enkelt(1) / Søgning(2) / Helt subcat(3) ? " , C
 0250 LET T = T + 1
 0260 IF ( C = 1 ) * T THEN LET A$ ( T ) = A$ ( T ) , "     "
 0270 IF C <> 3 THEN INPUT "Filnavn : " , A$ ( T + 1 )
 0280 IF A$ ( T + 1 ) <> "" THEN GOTO 0250
 0290 CONNECT SUBCAT$ ( 1 )
 0300 OPEN FILE ( 1 , 1 ) "SYS"
 0310 ON ERR THEN GOTO 0330
 0320 LET OLE = JENS
 0330 REPEAT 
 0340   EXEC L[S
 0350   FOR J = 1 TO ( T - 1 ) * ( C <> 3 ) + 1
 0360     IF B$ ( 1 , LEN ( SUBCAT$ ( 1 ) ) ) = SUBCAT$ ( 1 ) OR B$ ( 1 , LEN ( SUBCAT$ ( 2 ) ) ) = SUBCAT$ ( 2 ) OR B$ ( 1 , 3 ) = "SYS" THEN GOTO 0400
 0370     IF C <> 3 THEN IF B$ ( 1 , 5 * ( C = 1 ) + LEN ( A$ ( K ) ) * ( C = 2 ) ) <> A$ ( J ) THEN GOTO 0400
 0380     LET P = P + 1 ; P$ ( P ) = B$ ; ANTBY ( P ) = ( HENT ( 6 , 2 ) - 1 ) * 512 + HENT ( 6 , 1 )
 0390     IF HENT ( 7 , 1 ) MOD 256 = 82 THEN LET ANTBY ( P ) = - ANTBY ( P )
 0400   NEXT 
 0410 UNTIL EOF ( 1 ) OR SYS ( 7 ) = 107
 0420 ON ERR THEN GOTO 0440
 0430 CLOSE FILE ( 1 )
 0440 RESET ERR
 0450 IF OUT$ <> "" THEN OPEN FILE ( 0 , 11 ) OUT$
 0460 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "<12><10><13><14>LDFCP<10><13>KONTROLUDSKRIFT    D." ; SYS ( 1 ) ; SYS ( 2 ) ; SYS ( 3 )
 0470 PRINT "<10><10>>LDFCP  KONTROLUDSKRIFT        D." ; SYS ( 1 ) ; SYS ( 2 ) ; SYS ( 3 )
 0480 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "<10>   FRA SUBCAT: <34>" ; SUBCAT$ ( 1 ) ; "<34> TIL SUBCAT : <34>" ; SUBCAT$ ( 2 ) ; "<34>  MAX FILLGN :" ; \ DIV 32 ; "<10><10><13>"
 0490 PRINT "<10>   FRA SUBCAT : <34>" ; SUBCAT$ ( 1 ) ; "<34>  TIL SUBCAT : <34>" ; SUBCAT$ ( 2 ) ; "<34>  MAX FILLGN :" ; \ DIV 32 ; "<10>"
 0500 PRINT "  FILNAVN     KONTROL       STATUS"
 0510 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "  FILNAVN     KONTROL       STATUS"
 0520 FOR I = 1 TO P
 0530   PRINT "  #####  (######) " , P$ ( I ) , ANTBY ( I ) ,
 0540   IF OUT$ <> "" THEN PRINT FILE ( 0 ) "  #####  (######) " , P$ ( I ) , ANTBY ( I ) ,
 0550   IF ANTBY ( I ) < - 512 THEN PRINT "RANDOMFIL"
 0560   IF ANTBY ( I ) < - 512 THEN IF OUT$ <> "" THEN PRINT FILE ( 0 ) "RANDOMFIL"
 0570   IF ANTBY ( I ) > \ THEN PRINT "FOR STOR"
 0580   IF ANTBY ( I ) > \ THEN IF OUT$ <> "" THEN PRINT FILE ( 0 ) "FOR STOR"
 0590   IF ANTBY ( I ) > \ OR ANTBY ( P ) < - 512 THEN GOTO 0870
 0600   IF ANTBY ( I ) < 10 THEN PRINT "NUL FIL" ,
 0610   IF ANTBY ( I ) < 10 THEN IF OUT$ <> "" THEN PRINT FILE ( 0 ) "NUL FIL" ,
 0620   ON ERR THEN GOTO 0640
 0630   GOTO 0670
 0640   PRINT "UKEDT " , SYS ( 7 ) , " ? "
 0650   IF OUT$ <> "" THEN PRINT FILE ( 0 ) "UKENDT " , SYS ( 7 ) , " ? "
 0660   GOTO 0870
 0670   OPEN FILE ( 1 , 1 ) P$ ( I )
 0680   RESET ERR
 0690   IF ANTBY ( I ) < 10 THEN GOTO 0730
 0700   FOR II = 1 TO ANTBY ( I ) / 4
 0710     READ FILE ( 1 ) S ( II )
 0720   NEXT 
 0730   CLOSE FILE ( 1 )
 0740   CONNECT SUBCAT$ ( 2 ) , K
 0750   ON ERR THEN GOTO 0980
 0760   CREATE P$ ( I ) , 0
 0770   RESET ERR
 0780   IF ANTBY ( I ) < 10 THEN GOTO 0840
 0790   OPEN FILE ( 1 , 3 ) P$ ( I )
 0800   FOR II = 1 TO ANTBY ( I ) / 4
 0810     WRITE FILE ( 1 ) S ( II )
 0820   NEXT 
 0830   CLOSE FILE ( 1 )
 0840   PRINT "KOPIERET"
 0850   IF OUT$ <> "" THEN PRINT FILE ( 0 ) "KOPIERET"
 0860   LET F = F + 1
 0870   CONNECT SUBCAT$ ( 1 )
 0880 NEXT 
 0890 PRINT "-+###  FILER KOPIERET UDAF-+###" , F , P
 0900 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "-+### FILER KOPIERET UDAF-+###" , F , P
 0910 CLOSE
 0920 INPUT "SKAL DER OGSÅ COPIERES RANDOMFILER " , B$
 0930 IF B$ = "J" OR B$ = "JA" OR B$ = "j" OR B$ = "ja" THEN
 0940   CONNECT "ADM01"
 0950   CHAIN "#SCRC"
 0960 ENDIF 
 0970 END «nul»
 0980 IF SYS ( 7 ) = 109 THEN PRINT "EXISTERER"
 0990 IF OUT$ <> "" AND SYS ( 7 ) = 109 THEN PRINT FILE ( 0 ) "EXISTERER"
 1000 IF SYS ( 7 ) = 109 THEN GOTO 0870
 1010 PRINT SYS ( 7 )
 1020 STOP «nul» 
 1030 REM                                  END OF LIST «so» :  LDFCP«nul»

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] = 0x0286
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0280
      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# = 0x0082
      Loop Top = 0x0098
      To Val = 8   (0x41800000)
      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)
    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 L[S
    0x82 0xffff 0x00 PP
    0x83 0xffff 0x00 CC
    0x84 0xffff 0x00 HENT
    0x85 0xffff 0x02 B$
    0x86 0xffff 0x00 [
    0x87 0xffff 0x00 \
    0x88 0xffff 0x00 ]
    0x89 0xffff 0x02 P$
    0x8a 0xffff 0x02 A$
    0x8b 0xffff 0x02 SUBCAT$
    0x8c 0xffff 0x00 S
    0x8d 0xffff 0x02 OUT$
    0x8e 0xffff 0x00 ANTBY
    0x8f 0xffff 0x00 T
    0x90 0xffff 0x00 P
    0x91 0xffff 0x00 F
    0x92 0xffff 0x00 K
    0x93 0xffff 0x00 C
    0x94 0xffff 0x00 OLE
    0x95 0xffff 0x00 JENS
    0x96 0xffff 0x00 J
    0x97 0xffff 0x00 I
    0x98 0xffff 0x00 II

Wrapper

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