aboutsummaryrefslogtreecommitdiff
path: root/ksiders/atr.h
diff options
context:
space:
mode:
Diffstat (limited to 'ksiders/atr.h')
-rw-r--r--ksiders/atr.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/ksiders/atr.h b/ksiders/atr.h
new file mode 100644
index 0000000..53ca6be
--- /dev/null
+++ b/ksiders/atr.h
@@ -0,0 +1,65 @@
+/* Copyright 1997 Ken Siders */
+
+#ifndef ATR_H_INCLUDED
+#define ATR_H_INCLUDED
+
+/* constants */
+#define ATR_HEADER_SIZE 16
+
+
+/* typedefs */
+typedef unsigned char byte;
+
+
+/* structure definitions */
+
+struct S_HDR
+{
+byte idLow, idHigh;
+byte paraLow, paraHigh;
+byte secSizeLow, secSizeHigh;
+byte paraHigher;
+byte crc1, crc2, crc3, crc4;
+byte unused1, unused2, unused3, unused4;
+byte flags;
+};
+
+typedef struct S_HDR AtrHeader;
+
+struct S_AtrFile {
+ FILE *atrIn;
+ unsigned long imageSize;
+ unsigned short secSize;
+ unsigned long crc;
+ unsigned long sectorCount;
+ byte flags;
+ byte writeProtect;
+ byte authenticated;
+ unsigned short currentSector;
+ unsigned char dosType;
+};
+
+typedef struct S_AtrFile AtrFile;
+typedef AtrFile *AtrFilePtr;
+
+
+/* function prototypes */
+AtrFilePtr OpenAtr(char *file );
+
+int CloseAtr( AtrFilePtr atr );
+int ReadSector(AtrFilePtr atr, unsigned short sector, char *buffer);
+int WriteSector(AtrFilePtr atr, unsigned short sector, char *buffer);
+int CreateAtr( char *file, unsigned short sectors,
+ unsigned short sectorSize );
+int GetAtrInfo( AtrFilePtr atr, unsigned short *sectorSize,
+ unsigned short *sectorCount, byte *protected);
+int CreateBootAtr( char *atrName, char *fileName);
+long ExtractExeFromBootAtr(char *, char *);
+
+int SortAtariDir( char *atrName );
+int SetVerbose( int verb );
+int ExtractAtariFile( char *atrFile, char *fileName, char *dosPath );
+
+#endif
+
+