Move definitions for CBM file types into its own header file, since these

definitions are needed for file type macros in dirent.h. Unify names for the
include files.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5735 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2012-06-24 13:52:06 +00:00
parent 87d19de33f
commit 5bc67cdaee
5 changed files with 111 additions and 23 deletions

View File

@ -70,6 +70,9 @@
# include <pet.h>
#endif
/* Include definitions for CBM file types */
#include <cbm_filetype.h>
/*****************************************************************************/
@ -124,19 +127,6 @@ extern char _filetype; /* Defaults to 'u' */
/* CBM FILE TYPES */
#define CBM_T_DEL 0
#define CBM_T_SEQ 1
#define CBM_T_PRG 2
#define CBM_T_USR 3
#define CBM_T_REL 4
#define CBM_T_CBM 5 /* 1581 sub-partition */
#define CBM_T_DIR 6 /* IDE64 and CMD sub-directory */
#define CBM_T_LNK 7 /* IDE64 soft-link */
#define CBM_T_VRP 8 /* Vorpal fast-loadable format */
#define CBM_T_OTHER 9 /* File-type not recognized */
#define CBM_T_HEADER 10 /* Disk header / title */
/* CBM FILE ACCESS */
#define CBM_A_RO 1 /* Read only */
#define CBM_A_WO 2 /* Write only */
@ -149,14 +139,6 @@ struct cbm_dirent {
unsigned char access;
};
unsigned char __fastcall__ _cbm_filetype (unsigned char c);
/* Map the start character for a file type to one of the file types above.
* Note: 'd' will always mapped to CBM_T_DEL. The calling function has to
* look at the following character to determine if the file type is actually
* CBM_T_DIR.
* This is a function used by the implementation. There is usually no need
* to call it from user code.
*/
/*****************************************************************************/

106
include/cbm_filetype.h Normal file
View File

@ -0,0 +1,106 @@
/*****************************************************************************/
/* */
/* cbm_filetype.h */
/* */
/* Definitions for CBM file types */
/* */
/* */
/* */
/* (C) 2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _CBM_FILETYPE_H
#define _CBM_FILETYPE_H
/* Check for errors */
#if !defined(__CBM__)
# error This module may be used only when compiling for CBM machines!
#endif
/*****************************************************************************/
/* Definitions */
/*****************************************************************************/
/* CBM FILE TYPES. The definitions are used within standard headers, so we
* be careful with identifiers in the user name space.
*/
#define _CBM_T_DEL 0
#define _CBM_T_SEQ 1
#define _CBM_T_PRG 2
#define _CBM_T_USR 3
#define _CBM_T_REL 4
#define _CBM_T_CBM 5 /* 1581 sub-partition */
#define _CBM_T_DIR 6 /* IDE64 and CMD sub-directory */
#define _CBM_T_LNK 7 /* IDE64 soft-link */
#define _CBM_T_VRP 8 /* Vorpal fast-loadable format */
#define _CBM_T_OTHER 9 /* File-type not recognized */
#define _CBM_T_HEADER 10 /* Disk header / title */
#if __CC65_STD__ == __CC65_STD_CC65__
/* Allow for names without leading underscores */
#define CBM_T_DEL _CBM_T_DEL
#define CBM_T_SEQ _CBM_T_SEQ
#define CBM_T_PRG _CBM_T_PRG
#define CBM_T_USR _CBM_T_USR
#define CBM_T_REL _CBM_T_REL
#define CBM_T_CBM _CBM_T_CBM
#define CBM_T_DIR _CBM_T_DIR
#define CBM_T_LNK _CBM_T_LNK
#define CBM_T_VRP _CBM_T_VRP
#define CBM_T_OTHER _CBM_T_OTHER
#define CBM_T_HEADER _CBM_T_HEADER
#endif
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned char __fastcall__ _cbm_filetype (unsigned char c);
/* Map the start character for a file type to one of the file types above.
* Note: 'd' will always mapped to CBM_T_DEL. The calling function has to
* look at the following character to determine if the file type is actually
* CBM_T_DIR.
* This is a function used by the implementation. There is usually no need
* to call it from user code.
*/
/* End of cbm_filetype.h */
#endif

View File

@ -57,7 +57,7 @@ S_OBJS = c_acptr.o \
c_unlsn.o \
c_untlk.o \
cbm_close.o \
cbm_ftype.o \
cbm_filetype.o \
cbm_open.o \
cbm_read.o \
cbm_write.o \

View File

@ -5,7 +5,7 @@
; unsigned char __fastcall__ _cbm_filetype (unsigned char c);
;
.include "cbm_ftype.inc"
.include "cbm_filetype.inc"
.macpack generic