home *** CD-ROM | disk | FTP | other *** search
- Hardblocks Library v1.2 + HBtool v1.1
- =====================================
-
- Copyright:
- ----------
-
- © Copyright 1992, Freeware, All rights reserved
-
- Distribution EXCLUSIVELY permitted to Fred Fish for his PD software
- library. Distribution via FTP allowed too. Other forms of distribution
- need the permission of the author.
-
- No guarantee of any kind is made that this program is 100% reliable.
- You use it on your own risk.
-
- Notes:
- ------
-
- This package contains a shared library with support routines for
- Commodore's hardblock standard and a small tool which demonstrates use of
- this library.
-
- Usage of HBtool:
- ----------------
-
- · HBtool needs the Arp library v39+
- · to get the command line template use `hbtool ?', for additional help
- informations type `?' after the colon of the template
- · command line template:
- Device,Unit,FILE/k,LOAD/s,RESTORE/s,DEFAULT/s,SHOW/s,OUTPUT/k,SAVE/s,
- BACKUP/s,REMOVE/s
- · extra help:
- Usage: HBtool [Device] [Unit] [FILE name] [LOAD] [RESTORE] [DEFAULT]
- [SHOW] [OUTPUT file] [SAVE] [BACKUP] [REMOVE]
- [Device] = device name (default: scsi.device)
- [Unit] = device unit num (default 0)
- [FILE name] = file to restore/save hardblocks
- [LOAD] = load hardblocks from device (default)
- [RESTORE] = restore hardblocks from file
- [DEFAULT] = create standard rigid disk block
- [SHOW] = show currently loaded hardblocks (default)
- [OUTPUT file] = output file for show (default: NULL -> stdout)
- [SAVE] = save currently loaded hardblocks to device
- [BACKUP] = backup currently loaded hardblocks to file
- [REMOVE] = delete rigid disk block from device
- · before any changing of hardblocks on selected device are performed, a
- safety check must be passed - enter `YES' (case sensitive !!!), anything
- other aborts the changing operation
- · with LOAD, RESTORE & DEFAULT the hardblocks are only load into memory,
- now they can displayed (SHOW -> on screen, SHOW OUTPUT prt: -> on
- printer), stored in data files (BACKUP) or used as new hardblocks for
- selected device (SAVE), eg. to use hardblocks out a file you type
- hbtool my.device 0 restore file my.hardblocks save
- · with REMOVE only the rigid disk block is deleted from device
-
- Error codes:
- ------------
-
- 1 = invalid parameters given to function
- 2 = out of memory
- 3 = selected device don't exist
- 4 = selected board from given unit number don't exist
- 5 = can't find target id of controller for rdb_HostID
- 6 = selected device unit don't exist or isn't ready
- 7 = reading from device failed
- 8 = writing to device failed
- 9 = selected device don't support HD_SCSICMD
- 10 = cannot issue SCSI command to self - SCSI controller addressed
- 11 = DMA error
- 12 = illegal or unexpected SCSI phase
- 13 = SCSI parity error
- 14 = select timed out
- 15 = status and/or sense error
- 16 = INQUIRY cmd failed
- 17 = MODE SENSE cmd failed
- 18 = other SCSI cmd failed
- 19 = TEST UNIT READY cmd failed
- 20 = drive type of selected SCSI unit isn't DIRECT ACCESS
- 21 = wrong value in rdb_BlockBytes (2**x >= 256)
- 22 = incorrect value in rdb_RDBBlocksLo/Hi
- 23 = reserved area (rdb_RDBBlocksLo/Hi) too small for current hardblocks
- 24 = block num greater than num of last logical block of device unit
- 25 = odd aligned ptr to block in memory
- 26 = block with unsupported id
- 27 = unknown hardblock type
- 28 = invalid hardblock size
- 29 = invalid hardblock checksum
- 30 = no RigidDiskBlock found
- 31 = invalid RigidDiskBlock
- 32 = invalid BadBlockBlock
- 33 = invalid PartitionBlock
- 34 = invalid FileSysHeaderBlock
- 35 = missing file system
- 36 = invalid file system
- 37 = invalid code for rdb_DriveInit
- 38 = invalid LoadSegBlock
- 39 = user aborted with <ctrl c>
- 40 = can't open given file
- 41 = seeking within file failed
- 42 = reading from file failed
- 43 = writing to file failed
-
- Some technical details:
- -----------------------
-
- · hardblocks library use HD_SCSI_CMDs, so only SCSI devices are supported
- · the library only supports all hardblocks defined by Commodore
- (devices/hardblocks.h); all other block types (some SCSI controller
- vendors use custom hardblocks for internal purposes, eg. TrumpCard ->
- `IVS\0') are ignored
- · also all reserved block list headers of rigid disk block are not supported
- · BadBlockBlocks and LoadSegBlocks (FileSysHeaderBlock & DriveInit) are
- summarized to ONE custom hardblock called DataBlock (see hardblocks.h)
- · all block numbers (block list heads in rigid disk block, xxx_Next,
- fhb_SegListBlocks, ...) are replaced by memory pointers (read and restore)
- or offsets into data file (save)
- · an additional error code is returned in pr_Result2 of process structure,
- use the dos call IoErr() to get this value
- · currently hardblocks library produces some debugging messages via
- FarPrint (from Olaf Barthel, see fish disk #??), so if an error occured
- FarPrint (started first) can be used to check the internal state of the
- library
-
- Author:
- -------
-
- Torsten Jürgeleit
- Am Sandberg 4
- W-5270 Gummersbach
- Germany
- Phone: ++49 2261 27400
-
- Bug reports, flames, donations etc. are welcome !
- I may be reached via eMail: mike@miba.obb.sub.org
- Since this is a neighbour, it may take some time to answer :)
-