Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tpd(4) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mkboottape(1M)



TPD(4-SVR4)         RISC/os Reference Manual          TPD(4-SVR4)



NAME
     tpd - format of MIPS boot tape directories

SYNTAX
     #include <saio/tpd.h>

DESCRIPTION
     Boot tapes that can be read by the MIPS prom monitor contain
     a directory that allows the commands and records on the tape
     to load by name rather than by physical record number.  Boot
     tape are produced by the command mkboottape(1M).

     A boot tape consists of a number of physical tape files,
     where each file may optionally contain a tpd directory
     describing the contents of that physical file.  The prom
     monitor provides a syntax for referencing a named record on
     a boot tape (see the MIPS PROM MONITOR documentation).

     All binary values in the tpd directory are 2's complement,
     big-endian regardless of target machine.  The tpd checksum
     is calculated by first zeroing the td_cksum field, then 2's
     complement summing all 32 bit words in the struct tp_dir and
     then assigning the 2's complement of the cksum to td_cksum.
     Thus the checksum is verified by resumming the header and
     verifying the sum to be zero.  Each tape record is
     TP_BLKSIZE bytes long, trailing bytes in a tape block (after
     the end of the directory or an end of file) are unspecified
     (although they should be zero).  All files start on a tape
     block boundary, and the start of a particular file may be
     found by skipping backward to the beginning of the file con-
     taining the tape directory and then skipping forward tp_lbn
     records.

     The format of the tpd directory is:

     #define   TP_NAMESIZE    16
     #define   TP_NENTRIES    20
     #define   TP_BLKSIZE     512
     #define   TP_MAGIC  0xaced1234

     #ifdef LANGUAGE_C
     /*
      * tape directory entry
      */
     struct tp_entry {
          char      te_name[TP_NAMESIZE]; /* file name */
          unsigned  te_lbn;        /* tp record num */
                              /* 0 is tp_dir */
          unsigned  te_nbytes;     /* file byte count */
     };

     /*



                        Printed 11/19/92                   Page 1





TPD(4-SVR4)         RISC/os Reference Manual          TPD(4-SVR4)



      * boot tape directory block
      * WARNING: must not be larger than 512 bytes!
      */
     struct tp_dir {
          unsigned  td_magic;
          unsigned  td_cksum; /* csum of tp_dir */
          unsigned  td_spare1;
          unsigned  td_spare2;
          unsigned  td_spare3;
          unsigned  td_spare4;
          unsigned  td_spare5;
          unsigned  td_spare6;
          struct tp_entry td_entry[TP_NENTRIES];  /* directory */
     };

     union tp_header {
          char th_block[TP_BLKSIZE];
          struct    tp_dir th_td;
     };
     #endif LANGUAGE_C

     te_name is a null-terminated string.  The td_magic field
     contains TP_MAGIC to help verify the presence of a header.

SEE ALSO
     mkboottape(1M)
     MIPS PROM MONITOR manual




























 Page 2                 Printed 11/19/92



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026