/************************************************************ * Dump a PC file to some ADAM blocks ************************************************************* * 1.00 12/1/94 Chris Braymen Creation under Borland C 3.1 *************************************************************/ #define TRUE 1 #define FALSE 0 #define BUFSIZE 1024 #define BDRESET 0x00 #define BDSTATUS 0x01 #define BDREAD 0x02 #define BDWRITE 0x03 #define BDVERIFY 0x04 #define BDFORMAT 0x05 #define FLOPPY1 0x00 #define HEAD0 0x00 #define HEAD1 0x01 #define ONESECTOR 0x01 #include #include #include #include #include #include "adamfcb.h" unsigned char buffer[BUFSIZE]; int startBlock; char inFilename[255]; char version[] = "v1.00"; // Prototypes int processArgs(int,char**); int copyBlocks(int,FILE*); #include "writeBlk.c" int main(argc,argv) int argc; char *argv[]; { FILE *inFileP; if(!processArgs(argc,argv)) { exit(0); } if((inFileP=fopen(inFilename,"rb"))==NULL) { fprintf(stderr,"Error opening input file: %s\n",inFilename); exit(0); } copyBlocks(startBlock,inFileP); fclose(inFileP); return 0; } /******************************************************* * processArgs - process the command line args * sets global blockNumber ********************************************************/ processArgs(argc,argv) int argc; char *argv[]; { if(argc != 3) { printf("FILE2BLK %s - Public Domain from Bonafide Systems\n\n",version); printf("\nUsage: FILE2BLK \n\n"); return(FALSE); } strcpy(inFilename,argv[1]); startBlock=atoi(argv[2]); if(startBlock<0 || startBlock > 319) { fprintf(stderr,"Bad starting block: %d\n",startBlock); return(FALSE); } return(TRUE); } /********************************************************* * copyBlocks *********************************************************/ copyBlocks(block,fp) int block; FILE *fp; { int bytesRead; int i; printf("Processing...\n"); do { bytesRead=fread(buffer,1,1024,fp); if(ferror(fp)) { fprintf(stderr,"\nError reading PC file\n"); return(FALSE); } /* if read didn't read a complete 1K then pad it */ if(bytesRead>0) { for(i=bytesRead;i<1024;i++) buffer[i]='\0'; printf("\r%d",block); if(writeBlock(block,buffer)) { fprintf(stderr,"\nError writing block %d\n",block); return(FALSE); } block++; } } while(!feof(fp)); return(TRUE); }