WINCH-TO-FLOPP

From NDWiki
Revision as of 14:46, 22 May 2020 by TArntsen (talk | contribs) (Documenting the format)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Backup of directory to floppy disks

This program copies the directory on SATELLITE/COMPACT computers onto a set of floppy disks.

When the program has been loaded, it will first print a heading and then ask for disk type.

You are next asked for the backup date. Answer by typing a string of not more than 50 characters. This string will be written to the backup floppy disks and can be checked later if the backup is copied back to the disk.

The program now tells you how many pages there are on the disk to be copied, and how many floppy disks you need for it. The floppy disks referred to here are double-sided/double-density. If they are not formatted, the backup program will format them. Check that the floppy disks are not write protected.

For copying a full 21 MB disk (SATELLITE/9), 18 floppy disks are needed. If the program uses more floppy disks than predicted, this means that either the floppy disks are not very good, or that the floppy hardware may be in need of service. While copying, the program asks for a new floppy disk each time the one being copied to is full. The floppy disks will be numbered consecutively starting with 1. The floppy disk number, the disk directory it was copied from, and the backup date will be written to each floppy disk. It takes about 1.75 minutes to fill one floppy disk and you will be informed when the last disk has been filled.[1]

Description of backup format

Each floppy disk has the following structure:

HEADER
16384 bytes (8 kilowords)
DATA
N bytes: Pages copied from the ND directory (filesystem)

HEADER format:

BYTE OFFSET  SIZE IN BYTES  FUNCTION
0            2              Volume counter (first volume: 1)
2            16             Directory name, if shorter than 16 ending with apostrophe ('), 
                            padded with binary zeroes to 16
18           50             String, up to 50 characters, typically includes computer name and date. 
                            Padded with spaces to 50
68           2              Total number of volumes in volume set
70           2              Unused/Reserved, 2 binary zeroes
72           4              Unused/Reserved, 4 binary zeroes
76           16308          Pagelist information

The DATA section of the floppy contains pages copied from the originating directory filesystem. The location of the original page is encoded in the 'Pagelist information' section of the HEADER.

PAGELIST format:
The PAGELIST contains a number of records of 9 32-bit words. Each record contains eight 32-bit words followed by a single 32-bit word. The first eight words are page number offsets as measured from the start of the directory which is copied (offset 0: First page). The 9th word. PAGECOUNT, counts the current page index for this floppy, i.e. the first record will have value 8, the next 16 and so on.

The page number offsets map to the actual pages stored sequentially on the floppy disk after the HEADER section, i.e. the eight words of the first PAGELIST record are the page offsets of the first eight pages following the HEADER, their original offsets of the disk directory copied. ND pages are 2048 bytes (1KW) long.

There can technically be up to 453 records in the PAGELIST, mapping up to 453*8=3624 pages, but as a double density 1.2MB floppy in ND format only has enough space to hold (1261568-16384)/2048=608 pages, there will only be up to 76 records in the PAGELIST.

When there are no more pages to refer in the PAGELIST there will be a last record where the PAGECOUNT value is zero. If the last valid PAGELIST record is incomplete, i.e. there are less than 8 pages left to map, the non-used page number offsets are set to -1, or 0xFFFF. The PAGECOUNT value will still be the previous PAGECOUNT value plus 8.

All values are big endian.

A Linux/Unix tool to read and convert floppy disk images back to an ND filesystem can be found at github

See also

Product number

References

  1. Norsk Data Document ND–60.250.1 EN BACKUP USER GUIDE