DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦3d4328951⟧ TextFile

    Length: 7680 (0x1e00)
    Types: TextFile
    Names: »after       «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »after       « 

TextFile

mode list.yes
ft=algol survey.yes
begin
  boolean             med_kopi;
  integer             i, j, k ;
  integer array       zd, zd_org, zd_kopi (1:20);
  long    array field docname;
  zone                z (128, 1, kopiproc);

  procedure tøm_zone (z);
  zone                z ;
  begin
    integer array       zd (1:20);

    getzone6    (z,  zd );
    outchar     (z, 'em');
    setposition (z, 0, 0);

    setzone6    (z,  zd );
  end tøm_zone;

  procedure kopi_proc (z, s, b);
  zone                 z       ;
  integer                 s, b ;
  begin
    integer             i;
    integer array       zd (1:20);

    if s extract 1 = 1 then
      stderror (z, s, b);

    if s shift (-5) extract 1 = 1 then
    begin <*does not exist*>
      getzone6 (z, zd);

      if zd.docname (1) = long <:e :> then
      begin <*kopi*>
        zd (9) := zd (9) - 1; <*decrease segm count*>

        <*skriv i kopiareal*>
        for i := 7 step 1 until 20 do
          zd_kopi (i) := zd (i);

        setzone6    (z, zd_kopi);
        setposition (z, 0, 0   );

        <*skriv i dataareal*>
        for i := 7 step 1 until 20 do
          zd_org (i) := zd (i);

        setzone6    (z, zd_org);
        setposition (z, 0, 0  );

        getzone6 (z, zd);
        zd_org (6) := zd (6);  <*nta*>

        zd (9) := zd_org (9) + 1;
        zd.docname (1) := long <:e :>;

        setzone6 (z, zd);
      end else
        stderror (z, s, b) <*not hard error, not nonexist*>
    end else
      stderror (z, s, b);

  end kopi_proc;

     _kopi := fp_mode (1);                                                                             
  docname  := 2;                                                                                                 
                                                                                                                               
  if med_kopi then                                                                                             
  begin                                                                                                                   
    open        (z,  4, <:kopifil:>, 0);                                                 
    monitor (52, z,  i, zd); <*create area process*>                         
    inrec6      (z,  0); <*name table address*>                                   
    setposition (z,  0, 0);                                                                           
    getzone6    (z,  zd_kopi);                                                                     
                                                                                                                               
    close (z, false);                                                                                       
  end med_kopi;                                                                                                   
                                                                                                                               
  open        (z, 4, <:datafil:>, 0);                                                       
  outrec6     (z, 512); <*name table address*>                                     
  setposition (z, 0, 0);                                                                                 
  monitor  (8, z, i, zd);                                                                               
                                                                                                                               
  if med_kopi then                                                                                             
  begin                                                                                                                   
    getzone6   (z, zd_org);                                                                           
    zd_org     (10) := 1 shift 5; <*give up mask := not exist*>   
                                                                                                                               
    getzone6   (z, zd    );                                                                           
    zd.docname (1) := long <:e :>;                                                             
    zd (10)        := 1 shift 5; <*give up mask := not exist*>     
                                                                                                                               
    setzone6 (z, zd);                                                                                       
  end;                                                                                                                     
                                                                                                                               
  for i := 1 step 1 until 7 do                                                                     
  begin                                                                                                                   
    write (z, <:<10>< start transaction<10>:>);                                   
                                                                                                                               
    for j := 11, 12, 13, 14 do                                                                     
      write (z, false add ('a' + i + j - 11), j, "nl", 1);             
                                                                                                                               
    write (z, <:end transaction<10>:>, ">", 1, "nl", 1);                 
                                                                                                                               
    tøm_zone (z);                                                                                               
  end;                                                                                                                     
                                                                                                                               
  if med_kopi then                                                                                             
  begin                                                                                                                   
    getzone6 (z, zd);                                                                                       
    for i := 1 step 1 until 20 do                                                               
      zd (i) := zd_org (i);                                                                           
                                                                                                                               
    setzone6 (z, zd);                                                                                       
  end;                                                                                                                     
                                                                                                                               
  outchar (z, 'em');                                                                                         
  close   (z, true);                                                                                         
  d;                                                            en      

end
▶EOF◀