DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

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

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦f1e94eacc⟧ TextFile

    Length: 2560 (0xa00)
    Types: TextFile
    Names: »VOLUME.X«

Derivation

└─⟦ec7c10e12⟧ Bits:30009789/_.ft.Ibm2.50007351.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »VOLUME.X« 

TextFile

   PROCEDURE volume(VAR status: status_type
                   ;VAR error_out: text
                   ;VAR print_out: text
                   ;VAR oper_in: text
                   ;VAR oper_out: text
                   );


      VAR
         vid: block_type;                  (* current and only vid *)
         sds: psn_type;                    (* psn of next (first) sdb *)
         v_file: v_file_type;              (* CP/M source file holding
                                              Versados file system *)
         v_file_name: c_file_name_type;    (* name of v_file *)
         first_file_no: integer;           (* name of first file to convert.
                                              Files numbered 0... *)
         current_file_no: integer;         (* number of current file *)
         usr_vidvol: string_4;             (* Volume label stated by operator
                                              to be verified against volume *)
         path_name: path_name_type;        (* path name of current file *)

     BEGIN (* volume *)
      vid.kind := vid_tag;
      operator(status, oper_in, oper_out, v_file, v_file_name,
               first_file_no, usr_vidvol);
      IF status = succes THEN
        BEGIN
         get_block(status, error_out, v_file, null_psn, recs_per_vid, vid);
         IF test( (.t_1.) ) THEN
           BEGIN
            write(test_out, '===   volume-1   ===');
            write_status(test_out,status);
            write(test_out, '  vid.vol: ', vid.vid.vol:4);
            writeln(test_out);
           END;
         IF status = succes THEN
            IF vid.vid.vol = usr_vidvol THEN
              BEGIN
               print_header(status, print_out, v_file_name, first_file_no);
               WITH path_name DO
                 BEGIN
                  vol := vid.vid.vol;
                  usn := vid.vid.usn;
                 END;
               current_file_no := 0;
               sds := vid.vid.sds;
               IF not equal_psn(sds, null_psn) THEN
                  secondary(status, error_out, print_out, v_file, sds,
                            first_file_no, current_file_no, path_name);
               writeln(oper_out, current_file_no - 1, ' files transferred.');
               (* should probably be printed as well *)
              END
            ELSE
              writeln(error_out, 'conflicting volume identifier.')
        END
     END;  (* volume *)
«eof»