/************************************************************* * Give a directory of an ADAM disk ************************************************************** * 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" #define MAX_FCB 8*NUM_FCB_IN_BLOCK /* maximum # of directory entries */ unsigned char buffer[BUFSIZE]; struct EOS_FCB myDir[MAX_FCB]; char deletedFlag=FALSE; char longFlag=FALSE; char version[] = "v1.00"; /******************* * Prototypes ********************/ int processArgs(int,char**); int readDirectory(void); int verifyEOS(unsigned char*); void showNames(void); void showFCB(int); void showVol(void); void showShort(int); void showLong(int); void showFlags(unsigned char); void showHole(int); #include "readblk.c" int main(argv,argc) int argv; char *argc[]; { int block; if(!processArgs(argv,argc)) { printf("\nDIRADAM %s - Public Domain from Bonafide Systems\n\n",version); printf("Usage: DIRADAM <-d> <-l>\n\n"); printf("-d option shows deleted files\n"); printf("-l option shows directory long form\n\n"); exit(0); } if(readDirectory()) { printf("Error reading directory\n"); exit(0); } showNames(); return 0; } /******************************************************* * processArgs - process the command line args * sets globals longFlag and deletedFlag ********************************************************/ processArgs(argv,argc) int argv; char *argc[]; { int i; int exitFlag=TRUE; for(i=1;i MAX_FCB) return(0xFF); while(!done) { if(blockCount>dirBlocks) /* no "Hole" found */ return(0xFF); if(result=readBlock(blockCount,buffer)) /* read directory block */ return(result); /* error return */ for(i=0;i