home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
diskutil
/
tapebios
/
mt.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-06
|
2KB
|
96 lines
/* MT.TTP, Magnetic Tape functions for TapeBIOS */
/* This program is part of the TapeBIOS ditribution */
/* Written by Alan Hourihane 1992 */
/* Needs TapeBIOS driver loaded */
#include <stdio.h>
#include "tapebind.h"
extern void exit();
extern void Erase_Tape();
extern void Retension();
extern int Request_Sense();
extern int strcmp();
extern void bzero();
extern long get_cookie();
int
main(argc, argv)
int argc; char *argv[];
{
if(argc != 2) {
printf("Magnetic Tape (MT) Utility. Copyright 1992, A. Hourihane.\r\n");
printf("Usage: %s { rewind | load | unload | erase | retension }\r\n", argv[0]);
exit(1);
}
if(!get_cookie("TAPE")) {
printf("TapeBIOS is not installed.\r\n");
exit(1);
}
if (!(strcmp(argv[1], "rewind")))
(void) Trewind();
else if(!(strcmp(argv[1], "retension")))
(void)Retension();
else if(!(strcmp(argv[1], "erase")))
(void)Erase_Tape();
else if(!(strcmp(argv[1], "load")))
(void)Tload(0L);
else if(!(strcmp(argv[1], "unload")))
(void)Tunload(0L);
return(0);
}
int
Ready_Tape()
{
int stat = 0, x = 0;
for(x = 10; x > 0 && stat; x--) {
stat = Tready();
if(stat == 2) {
stat = Request_Sense();
printf("Tape Drive returned error code: %d\r\n",stat);
return(stat);
}
}
return(0);
}
void
Retension()
{
int stat = 0;
if(Ready_Tape() == 0) {
stat = Tload(1L);
if (stat == 2) {
stat = Request_Sense();
printf("Tape Drive returned error code: %d\r\n",stat);
}
stat = Tunload(0L);
if (stat == 2) {
stat = Request_Sense();
printf("Tape Drive returned error code: %d\r\n",stat);
}
}
}
void
Erase_Tape()
{
int stat = 0;
if(Ready_Tape() == 0) {
stat = Terase();
if(stat) {
if(stat == 2) {
stat = Request_Sense();
printf("Tape Drive returned error code: %d\r\n",stat);
}
}
}
}