# Copyright 1997 Tim Hoogasian (hoogs@usa.net)
# Copyright 1997,2001,2002 Alain Knaff.
# This file is part of mtools.
#
# Mtools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Mtools is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Mtools.  If not, see <http://www.gnu.org/licenses/>.
# 
# /etc/format.dat file for Accessing ZIP and Jaz disks from Solaris
#
# Contributed by Tim Hoogasian (thoogasi@us.oracle.com)
#

disk_type = "Iomega ZIP 100" \
        : ctlr = SCSI \
        : ncyl = 2406 : acyl = 2 : pcyl = 2408 : nhead = 2 \
        : nsect = 40 : rpm = 3600 : bpt = 20480

# Default Zip floppy part'n map : block 0-192480 (entire disk)
#
partition = "Iomega ZIP 100" \
        : disk = "Iomega ZIP 100" : ctlr = SCSI \
        : 2 = 0, 192480
##
disk_type = "Jaz 1GB" \
        : ctlr = SCSI \
        : ncyl = 1018 : acyl = 2 : pcyl = 1020 : nhead = 64 \
        : nsect = 32 : rpm = 3600 : bpt = 16384

partition = "Jaz 1GB" \
        : disk = "Jaz 1GB" : ctlr = SCSI \
        : 2 = 0,2084864
