/* * cbmarcs.h * * Commodore archive formats directory display routines * */ #include /* Remember to change ArchiveFormats[] if you change these enums */ enum ArchiveTypes { C64__0, C64_10, C64_13, C64_15, C128_15, LHA_SFX, LHA, Lynx, LynxNew, T64, D64, X64, P00, S00, U00, R00, D00, X00, UnknownArchive }; extern char *ArchiveFormats[]; struct ArcTotals { int ArchiveEntries; int TotalBlocks; int TotalBlocksNow; long TotalLength; int DearcerBlocks; int Version; /* Not a total, but still interesting info */ /* Version > 0 is an integer Version < 0 is a fixed point integer to 1 decimal Version = 0 is unknown or n/a */ }; enum ArchiveTypes DetermineArchiveType(FILE *InFile, const char *FileName); int DirArchive(FILE *InFile, enum ArchiveTypes SDAType, struct ArcTotals *Totals, int (DisplayFile)(const char *Name, const char *Type, unsigned long Length, unsigned Blocks, const char *Storage, int Compression, unsigned BlocksNow, long Checksum)); int DirARC(FILE *InFile, enum ArchiveTypes ArchiveType, struct ArcTotals *Totals, int (DisplayFunction)()); int DirLynx(FILE *InFile, enum ArchiveTypes LynxType, struct ArcTotals *Totals, int (DisplayFunction)()); int DirLHA(FILE *InFile, enum ArchiveTypes ArchiveType, struct ArcTotals *Totals, int (DisplayFunction)()); int DirT64(FILE *InFile, enum ArchiveTypes ArchiveType, struct ArcTotals *Totals, int (DisplayFunction)()); int DirD64(FILE *InFile, enum ArchiveTypes D64Type, struct ArcTotals *Totals, int (DisplayFunction)()); int DirP00(FILE *InFile, enum ArchiveTypes ArchiveType, struct ArcTotals *Totals, int (DisplayFunction)());