82 lines
3.2 KiB
C
82 lines
3.2 KiB
C
/*
|
|
* Copyright (c) 1993 Steve Gerakines
|
|
*
|
|
* This is freely redistributable software. You may do anything you
|
|
* wish with it, so long as the above notice stays intact.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
|
|
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
|
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* ftreg.h - QIC-40/80 floppy tape driver header
|
|
* 10/30/93 v0.3
|
|
* More things will end up here. QC_VENDORID and QC_VERSION now used.
|
|
*
|
|
* 08/07/93 v0.2 release
|
|
* Things that should've been here in the first place were moved.
|
|
* Tape geometry and segment request types were added.
|
|
*
|
|
* 06/03/93 v0.1 Alpha release
|
|
* Initial revision. Many more things should be moved here.
|
|
*/
|
|
|
|
/* QIC-117 command set. */
|
|
#define QC_RESET 1 /* reset */
|
|
#define QC_NEXTBIT 2 /* report next bit */
|
|
#define QC_PAUSE 3 /* pause */
|
|
#define QC_STPAUSE 4 /* step pause */
|
|
#define QC_TIMEOUT 5 /* alt timeout */
|
|
#define QC_STATUS 6 /* report status */
|
|
#define QC_ERRCODE 7 /* report error code */
|
|
#define QC_CONFIG 8 /* report config */
|
|
#define QC_VERSION 9 /* report version */
|
|
#define QC_FORWARD 10 /* logical forward */
|
|
#define QC_SEEKSTART 11 /* seek to track start */
|
|
#define QC_SEEKEND 12 /* seek to track end */
|
|
#define QC_SEEKTRACK 13 /* seek head to track */
|
|
#define QC_SEEKLOAD 14 /* seek load point */
|
|
#define QC_FORMAT 15 /* format mode */
|
|
#define QC_WRITEREF 16 /* write reference */
|
|
#define QC_VERIFY 17 /* verify mode */
|
|
#define QC_STOP 18 /* stop tape */
|
|
#define QC_STEPUP 21 /* step head up */
|
|
#define QC_STEPDOWN 22 /* step head down */
|
|
#define QC_SEEKREV 25 /* seek reverse */
|
|
#define QC_SEEKFWD 26 /* seek forward */
|
|
#define QC_RATE 27 /* select data rate */
|
|
#define QC_DIAG1 28 /* diagnostic mode 1 */
|
|
#define QC_DIAG2 29 /* diagnostic mode 2 */
|
|
#define QC_PRIMARY 30 /* primary mode */
|
|
#define QC_VENDORID 32 /* vendor id */
|
|
#define QC_TSTATUS 33 /* report tape status */
|
|
#define QC_EXTREV 34 /* extended skip reverse */
|
|
#define QC_EXTFWD 35 /* extended skip forward */
|
|
|
|
/* Colorado enable/disable. */
|
|
#define QC_COL_ENABLE1 46 /* enable */
|
|
#define QC_COL_ENABLE2 2 /* null-op */
|
|
#define QC_COL_DISABLE 47 /* disable */
|
|
|
|
/* Mountain enable/disable. */
|
|
#define QC_MTN_ENABLE1 23 /* enable 1 */
|
|
#define QC_MTN_ENABLE2 20 /* enable 2 */
|
|
#define QC_MTN_DISABLE 24 /* disable */
|
|
|
|
/* Segment I/O request. */
|
|
typedef struct segq {
|
|
unsigned char buff[QCV_SEGSIZE];/* Segment data; first for alignment */
|
|
int reqtype; /* Request type */
|
|
long reqcrc; /* CRC Errors found */
|
|
long reqbad; /* Bad sector map */
|
|
long reqblk; /* Block request starts at */
|
|
int reqcan; /* Cancel read-ahead */
|
|
} SegReq;
|