diff --git a/README b/README deleted file mode 100644 index e69de29b..00000000 diff --git a/YOU.LOGO b/YOU.LOGO new file mode 100644 index 00000000..2269ba30 Binary files /dev/null and b/YOU.LOGO differ diff --git a/dos33.c b/dos33.c index b2ee3cb0..386cf450 100644 --- a/dos33.c +++ b/dos33.c @@ -33,7 +33,7 @@ unsigned char dos33_file_type(int value) { unsigned char result; - switch(value){ + switch(value&0x7f){ case 0x0: result='T'; break; case 0x1: result='I'; break; case 0x2: result='A'; break; @@ -159,13 +159,17 @@ catalog_loop: } catalog_track=buffer[CATALOG_NEXT_T]; catalog_sector=buffer[CATALOG_NEXT_S]; - if (catalog_sector!=0) goto catalog_loop; + if (catalog_sector!=0) { + catalog_file=0; + goto catalog_loop; + } + return -1; } int dos33_print_file_info(int fd,int catalog_tsf,unsigned char *buffer) { - int catalog_track,catalog_sector,catalog_file; + int catalog_track,catalog_sector,catalog_file,i; char temp_string[BUFSIZ]; catalog_file=catalog_tsf>>16; @@ -187,9 +191,16 @@ int dos33_print_file_info(int fd,int catalog_tsf,unsigned char *buffer) { printf("%.3i ",buffer[CATALOG_FILE_LIST+(catalog_file*CATALOG_ENTRY_SIZE+FILE_SIZE_L)]+ (buffer[CATALOG_FILE_LIST+(catalog_file*CATALOG_ENTRY_SIZE+FILE_SIZE_H)]<<8)); + + strncpy(temp_string,dos33_filename_to_ascii(temp_string, + buffer+(CATALOG_FILE_LIST+(catalog_file*CATALOG_ENTRY_SIZE+FILE_NAME))),BUFSIZ); + + for(i=0;i0x7f? + "YES":"NO"); + printf("\tType = %c\n", + dos33_file_type(buffer[CATALOG_FILE_LIST+(file*CATALOG_ENTRY_SIZE)+FILE_TYPE])); + printf("\tSize in sectors = %i\n", + buffer[CATALOG_FILE_LIST+(file*CATALOG_ENTRY_SIZE+FILE_SIZE_L)]+ + (buffer[CATALOG_FILE_LIST+(file*CATALOG_ENTRY_SIZE+FILE_SIZE_H)]<<8)); +repeat_tsl: + printf("\tT/S List $%02X/$%02X:\n",ts_t,ts_s); + if (deleted) goto continue_dump; + lseek(fd,DISK_OFFSET(ts_t,ts_s),SEEK_SET); + read(fd,&tslist,BYTES_PER_SECTOR); + + for(i=0;i + +int main(int argc, char **argv) { + + int ch; + while(1) { + + ch=fgetc(stdin); + if (feof(stdin)) return 0; + ch=ch&0x7f; + if (ch=='\r') ch=('\n'); + fputc(ch,stdout); + } + + return 0; + + +} + +