Annotation of hatari/src/st.c, revision 1.1.1.3

1.1       root        1: /*
1.1.1.3 ! root        2:   Hatari - st.c
1.1       root        3: 
1.1.1.3 ! root        4:   This file is distributed under the GNU Public License, version 2 or at
        !             5:   your option any later version. Read the file gpl.txt for details.
        !             6: 
        !             7:   ST Disc support.
1.1       root        8: */
1.1.1.3 ! root        9: char ST_rcsid[] = "Hatari $Id: st.c,v 1.4 2004/04/28 09:04:58 thothy Exp $";
1.1       root       10: 
                     11: #include "main.h"
                     12: #include "file.h"
1.1.1.3 ! root       13: #include "st.h"
1.1       root       14: 
                     15: #define SAVE_TO_ST_IMAGES
                     16: 
                     17: /*
                     18:     .ST FILE FORMAT
                     19:   --===============-------------------------------------------------------------
                     20: 
                     21:   The file format of the .ST image files used by PaCifiST is simplicity itself;
                     22:   they are just straight images of the disk in question, with sectors stored in
                     23:   the expected logical order. So, on a sector basis the images run from sector
                     24:   0 (bootsector) to however many sectors are on the disk. On a track basis the
                     25:   layout is the same as for MSA files but obviously the data is raw, no track
                     26:   header or compression or anything like that.
                     27: 
                     28:   TRACK 0, SIDE 0
                     29:   TRACK 0, SIDE 1
                     30:   TRACK 1, SIDE 0
                     31:   TRACK 1, SIDE 1
                     32:   TRACK 2, SIDE 0
                     33:   TRACK 2, SIDE 1
                     34: */
                     35: 
                     36: 
1.1.1.2   root       37: /*-----------------------------------------------------------------------*/
1.1       root       38: /*
1.1.1.3 ! root       39:   Does filename end with a .ST extension? If so, return TRUE
1.1       root       40: */
1.1.1.3 ! root       41: BOOL ST_FileNameIsST(char *pszFileName, BOOL bAllowGZ)
1.1       root       42: {
1.1.1.3 ! root       43:        return(File_DoesFileExtensionMatch(pszFileName,".st")
        !            44:               || (bAllowGZ && File_DoesFileExtensionMatch(pszFileName,".st.gz")));
        !            45: }
        !            46: 
        !            47: 
        !            48: /*-----------------------------------------------------------------------*/
        !            49: /*
        !            50:   Load .ST file into memory, set number of bytes loaded and return a pointer
        !            51:   to the buffer.
        !            52: */
        !            53: Uint8 *ST_ReadDisc(char *pszFileName, long *pImageSize)
        !            54: {
        !            55:        void *pStFile;
        !            56: 
        !            57:        *pImageSize = 0;
1.1       root       58: 
1.1.1.3 ! root       59:        /* Just load directly a buffer, and set ImageSize accordingly */
        !            60:        pStFile = File_Read(pszFileName, NULL, pImageSize, NULL);
        !            61:        if (!pStFile)
        !            62:                *pImageSize = 0;
1.1       root       63: 
1.1.1.3 ! root       64:        return(pStFile);
1.1       root       65: }
                     66: 
1.1.1.2   root       67: 
                     68: /*-----------------------------------------------------------------------*/
1.1       root       69: /*
                     70:   Save .ST file from memory buffer. Returns TRUE is all OK
                     71: */
1.1.1.3 ! root       72: BOOL ST_WriteDisc(char *pszFileName, Uint8 *pBuffer, int ImageSize)
1.1       root       73: {
                     74: #ifdef SAVE_TO_ST_IMAGES
                     75: 
1.1.1.3 ! root       76:        /* Just save buffer directly to file */
        !            77:        return( File_Save(pszFileName, pBuffer, ImageSize, FALSE) );
1.1       root       78: 
1.1.1.2   root       79: #else   /*SAVE_TO_ST_IMAGES*/
1.1       root       80: 
1.1.1.3 ! root       81:        /* Oops, cannot save */
        !            82:        return(FALSE);
1.1       root       83: 
1.1.1.2   root       84: #endif  /*SAVE_TO_ST_IMAGES*/
1.1       root       85: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.