add directory Minix
This commit is contained in:
91
Minix/demo/file2dsk.c
Normal file
91
Minix/demo/file2dsk.c
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
File to disk moving utility for the Atari ST
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
char buffer[4610];
|
||||
main(argc,argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
|
||||
int i,handle,result=1,drive=0,sector=1,track=0,side=0,done,count=0;
|
||||
char dummy[255];
|
||||
long filler=0,buflen=4608;
|
||||
FILE *infile;
|
||||
|
||||
printf("file2dsk.ttp -- (c)1991 Ken Corey (aka kenc@vaxb.acs.unt.edu)\n");
|
||||
printf("Intended for use with the demonstration distribution of \n MINIX-ST (c)1990 Prentice Hall\n");
|
||||
if(argc<2)
|
||||
{
|
||||
printf("\nThis program will transfer a file onto a disk bit for bit.\n");
|
||||
printf("It's meant to be used with the Minix demo software, though it will\n");
|
||||
printf("use any file. Use with other files will no doubt lead to\n");
|
||||
printf("interesting deadly, and useless (8^)) results.\n");
|
||||
printf("\nUsage: file2dsk demo_dsk.st [B:]\n");
|
||||
printf("\nwill copy the file demo_dsk.st onto a floppy, bit for bit, sector for sector.\n");
|
||||
printf("2 Caveats:\n\n");
|
||||
printf(" 1)This software will completely erase any extant info on the floppy.\n");
|
||||
printf("\n 2)The disk must previously be formatted out to single sided,\n");
|
||||
printf(" using the standard st desktop. No other configuration has been tested!\n");
|
||||
printf("\n\n BTW, have a great day!\n");
|
||||
|
||||
printf("Hint: hit a key to exit to desktop....");
|
||||
gets(dummy);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(argc==3)
|
||||
drive=1;
|
||||
printf("\nOkay, I'm gonna use '%s' as the filename.\n",argv[1]);
|
||||
printf("Please insert a freshly formatted, SINGLE sided floppy in drive ");
|
||||
if(drive==0)
|
||||
printf("A:\n");
|
||||
else
|
||||
printf("B:\n");
|
||||
printf("and hit return...\n\n");
|
||||
printf("THIS FLOPPY WILL BE COMPLETELY ERASED!");
|
||||
|
||||
gets(dummy);
|
||||
|
||||
result=gemdos(0x3D,argv[1],0);
|
||||
if (result<0)
|
||||
{
|
||||
printf("I couldn't open the file '%s'!\n",argv[1]);
|
||||
exit(result);
|
||||
}
|
||||
|
||||
handle=result;
|
||||
|
||||
while((track<=80)&&(count<0x2D0)&&(done!=1))
|
||||
{
|
||||
for(i=0;i<4610;buffer[i++]=0xE5) ;
|
||||
|
||||
result=gemdos(0x3F,handle,buflen,&buffer[0]);
|
||||
if (result<0)
|
||||
{
|
||||
printf("Error in reading '%s'!\n",argv[1]);
|
||||
exit(result);
|
||||
}
|
||||
|
||||
if(result==0)
|
||||
done=1;
|
||||
|
||||
printf("%d--%d t--s\n",track,sector);
|
||||
|
||||
result=xbios(0x9,&buffer[0],filler,drive,sector,track,side,9);
|
||||
if(result<0)
|
||||
{
|
||||
printf("Error in writing to drive A:!\n");
|
||||
exit(result);
|
||||
}
|
||||
|
||||
track += 1;
|
||||
count += 9;
|
||||
}
|
||||
|
||||
printf("All done!\n");
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user