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

⟦5e1cffdb6⟧ COMAL_SAVE

    Length: 3206 (0xc86)
    Types: COMAL_SAVE
    Notes: >LDFCP  , BASIC::>LDFCP
    Names: »>LDFCP«

Derivation

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

UPAS Segment

SAVE filename: ">LDFCP"

 0010 REM  ** CLAUS BRUUN * REV.12.04.79 **      PROG : «so»>LDFCP«si»«nul»«nul»
 0020 REM  ** DER FORUDSÆTTES FRISKE LOOKUPS **«so»«nul»P
 0030 INPUT [ , \ , ]
 0040 PRINT "<12>>LDFCP<13><10>Logical Disc File Copy Program  Rev.12.04.79<10>"
 0050 DIM P$ ( [ , 18 ) , A$ ( \ , 8 ) , B$ ( 34 ) , LDIN$ ( 8 ) , LDUD$ ( 8 ) , S ( ] ) , OUT$ ( 6 )
 0060 DEF FNA ( VAR98 ) = ( ORD ( P$ ( I , [LVAR]  ) ) - 48 ) * 100 + ( ORD ( P$ ( I , [LVAR]  + 1 ) ) - 48 ) * 10 + ORD ( P$ ( I , [LVAR]  + 2 ) ) - 48
 0070 LET T = - 1 P = 0 F = 0
 0080 INPUT "Fra LD : " , LDIN$
 0081 IF LDIN$ = "" THEN GOTO 0595
 0082 INPUT "Til LD : " , LDUD$ , "  Kode : " , K
 0085 INPUT "Ud-fil :" , OUT$
 0090 INPUT "Copy : Enkelt(1)/Søgning(2)/Hel LD(3) ? " , C
 0100 LET T = T + 1
 0110 IF ( C = 1 ) * T THEN LET A$ ( T ) = A$ ( T ) , "         "
 0120 INPUT "Filnavn : " , A$ ( T + 1 )
 0130 IF A$ ( T + 1 ) <> "" THEN GOTO 0100
 0140 CONNECT LDIN$
 0145 IF OUT$ <> "" THEN OPEN FILE ( 0 , 11 ) OUT$
 0150 OPEN FILE ( 1 , 9 ) "LPT"
 0160 INPUT FILE ( 1 ) B$ , B$ , B$ , B$ , B$
 0170 WHILE B$ ( 1 , 5 ) <> "$FREE" DO
 0180   FOR J = 1 TO ( T - 1 ) * ( C <> 3 ) + 1
 0190     IF C <> 3 THEN IF B$ ( 1 , 8 * ( C = 1 ) + LEN ( A$ ( J ) ) * ( C = 2 ) ) <> A$ ( J ) THEN GOTO 0210
 0200     LET P = P + 1 P$ ( P ) = B$ ( 1 , 8 ) , B$ ( 10 ) , B$ ( 15 , 17 ) , B$ ( 22 , 24 ) , B$ ( 29 , 31 )
 0210   NEXT 
 0220   INPUT FILE ( 1 ) B$
 0230 ENDWHILE
 0240 CLOSE FILE ( 1 )
 0250 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "<10><10><10><10>>LDFCP  KONTROLUDSKRIFT         D." ; SYS ( 1 ) ; SYS ( 2 ) ; SYS ( 3 )
 0251 PRINT "<10><10>>LDFCP  KONTROLUDSKRIFT        D." ; SYS ( 1 ) ; SYS ( 2 ) ; SYS ( 3 )
 0260 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "<10>  FRA LD: <34>" ; LDIN$ ; "<34> TIL LD : <34>" ; LDUD$ ; "<34>  MAX FILLGN :" ; ] DIV 32 ; "<10>"
 0261 PRINT "<10>  FRA LD : <34>" ; LDIN$ ; "<34> TIL LD : <34>" ; LDUD$ ; "<34> MAX FILLGN :" ; ] DIV 32 ; "<10>"
 0264 PRINT "  FILNAVN     KONTROL       STATUS"
 0265 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "  FILNAVN     KONTROL       STATUS"
 0270 FOR I = 1 TO P
 0280   PRINT "  " ; P$ ( I , 1 , 8 ) , "(" ; P$ ( I , 9 , 18 ) ; ")" ,
 0285   IF OUT$ <> "" THEN PRINT FILE ( 0 ) "  " ; P$ ( I , 1 , 8 ) , "(" ; P$ ( I , 9 , 18 ) ; ")" ,
 0290   IF P$ ( I , 9 ) = "R" THEN PRINT "RANDOMFIL"
 0295   IF P$ ( I , 9 ) = "R" AND OUT$ <> "" THEN PRINT FILE ( 0 ) "RANDOMFIL"
 0300   IF FNA ( 16 ) > ] DIV 32 THEN PRINT "FOR STOR"
 0305   IF FNA ( 16 ) > ] DIV 32 AND OUT$ <> "" THEN PRINT FILE ( 0 ) "FOR STOR"
 0310   IF FNA ( 16 ) > ] DIV 32 OR P$ ( I , 9 ) = "R" THEN GOTO 0520
 0320   IF FNA ( 10 ) = 0 THEN PRINT "NUL FIL" ,
 0325   IF FNA ( 10 ) = 0 AND OUT$ <> "" THEN PRINT FILE ( 0 ) "NUL FIL" ,
 0328   LET N = 8
 0330   REPEAT 
 0332     LET N = N - 1
 0334   UNTIL P$ ( I , N + 1 ) <> " "
 0340   ON ERR THEN GOTO 0340
 0350   LET N = N + 1
 0360   IF N = 9 THEN PRINT "UKENDT" , SYS ( 7 )
 0365   IF N = 9 AND OUT$ <> "" THEN PRINT FILE ( 0 ) "UKENDT" , SYS ( 7 )
 0370   IF N = 9 THEN GOTO 0520
 0380   OPEN FILE ( 1 , 1 ) P$ ( I , 1 , N )
 0390   IF FNA ( 10 ) = 0 THEN GOTO 0420
 0400   DIM S ( ( ( FNA ( 10 ) - 1 ) * 128 + FNA ( 13 ) + 3 ) DIV 4 )
 0410   MAT READ FILE ( 1 ) S
 0420   CLOSE FILE ( 1 )
 0430   CONNECT LDUD$ , K
 0440   ON ERR THEN GOTO 0570
 0450   CREATE P$ ( I , 1 , N ) , FNA ( 16 )
 0460   IF FNA ( 10 ) = 0 THEN GOTO 0500
 0470   OPEN FILE ( 1 , 3 ) P$ ( I , 1 , N )
 0480   MAT WRITE FILE ( 1 ) S
 0490   CLOSE FILE ( 1 )
 0500   PRINT "KOPIERET"
 0505   IF OUT$ <> "" THEN PRINT FILE ( 0 ) "KOPIERET"
 0510   LET F = F + 1
 0520   CONNECT LDIN$
 0530 NEXT 
 0540 PRINT "-+###  FILER KOPIERET UDAF-+###" , F , P
 0550 IF OUT$ <> "" THEN PRINT FILE ( 0 ) "-+### FILER KOPIERET UDAF-+###" , F , P
 0555 CLOSE
 0560 GOTO 0070
 0570 IF SYS ( 7 ) = 109 THEN PRINT "EXISTERER"
 0575 IF OUT$ <> "" AND SYS ( 7 ) = 109 THEN PRINT FILE ( 0 ) "EXISTERER"
 0580 IF SYS ( 7 ) = 109 THEN GOTO 0520
 0590 PRINT SYS ( 7 )
 0595 CONNECT "ADM1"
 0596 CHAIN ">AMP"
 0600 REM                          END OF LIST.  PROG : «so»>LDFCP«si»«nul»«nul»

UDAS Segment

    FNA definition = 0x00be
    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# = 0x008a
      Loop Top = 0x02f2
      To Val = 11   (0x41b00000)
      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] = 0x03c0
      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] = 0x0196
      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 [
    0x82 0xffff 0x00 \
    0x83 0xffff 0x00 ]
    0x84 0xffff 0x02 P$
    0x85 0xffff 0x02 A$
    0x86 0xffff 0x02 B$
    0x87 0xffff 0x02 LDIN$
    0x88 0xffff 0x02 LDUD$
    0x89 0xffff 0x00 S
    0x8a 0xffff 0x00 I
    0x8b 0xffff 0x00 T
    0x8c 0xffff 0x00 P
    0x8d 0xffff 0x00 F
    0x8e 0xffff 0x00 K
    0x8f 0xffff 0x00 C
    0x90 0xffff 0x00 J
    0x91 0xffff 0x00 N
    0x92 0xffff 0x02 OUT$
    0x93 0xffff 0x00 [IST
    0x94 0xffff 0x00 OIST
    0x95 0xffff 0x00 LST
    0x96 0xffff 0x00 RIUN

Wrapper

.magic = 0x5356
.u_pas = 0x0559  // Length of UPAS in words
.u_das = 0x00db  // Length of UDAS in words
.u_dvs = 0x00db  // 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)