mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 17:34:06 +00:00
156 lines
6.1 KiB
C
156 lines
6.1 KiB
C
|
||
/*----------------------------------------------------------------------*\
|
||
| NAME : utildef.h |
|
||
| FUNCTION : This is a header file used by the utilities |
|
||
| for the Portable Concurrent CP/M 4.0. |
|
||
| |
|
||
| CREATED : 26-July-83 LAST MODIFIED: 16-September-83 |
|
||
| AUTHOR : Kim S. Ouye |
|
||
| |
|
||
| COPYRIGHT (c) Digital Research 1983 |
|
||
| all rights reserved |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Conditional compile flags |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define CCPM2 1 /* 1 CCP/M 2.0 0 not CCPM 2.0 */
|
||
#define CCPM4 0 /* 1 PCCP/M 4.0 0 not CCPM 4.0 */
|
||
#define CPM68K 0 /* 1 CP/M 68K 1.1 0 not CP/M 68K 1.1 */
|
||
|
||
#define CPU_8086 1 /* 1 8086 CPU 0 not 8086 CPU */
|
||
#define CPU_68K 0 /* 1 68K CPU 0 not 68K CPU */
|
||
#define CPU_286 0 /* 1 80286 CPU 0 not 80286 CPU */
|
||
#define CPU_Z8000 0 /* 1 Z8000 CPU 0 not Z8000 CPU */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Max. & min. length, sizes, values |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define FCB_LEN 36 /* FCB buffer length */
|
||
#define DMA_LEN 128 /* DMA buffer length */
|
||
#define PW_LEN 8 /* file password length */
|
||
#define SEC_LEN 128 /* sector length */
|
||
#define MAX_MSEC 128 /* max. mutl-sector count */
|
||
#define FNAME_LEN 12 /* FCB name field length */
|
||
#define FILESPEC_LEN 15 /* max. filespec length */
|
||
#define MAX_FILESPEC 16 /* max. list of filespec */
|
||
#define PAGE_LEN 23 /* default page length */
|
||
#define MAX_USER_NUM 15 /* max. user number */
|
||
#define NUM_DIR_COL 4 /* # column DIR display */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Masks |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define BDOS_MASK 0x00ff /* BDOS version mask */
|
||
#define OS_MASK 0xff00 /* CP/M system version mask */
|
||
#define RO_MASK 0x0080 /* set F6' (read only) attrib. */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| CP/M specific misc. defines |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#if (CCPM2 & CPU_8086)
|
||
#define BDOS_VER 0x0031 /* BDOS Ver. 3.1 */
|
||
#define OS_TYPE 0x1400 /* CCP/M on 8086 cpu */
|
||
#endif
|
||
#if (CCPM4 & CPU_68K)
|
||
#define BDOS_VER 0x0040 /* BDOS Ver. 4.0 */
|
||
#define OS_TYPE 0x2400 /* CCP/M on 68K cpu */
|
||
#endif
|
||
#if (CPM68K)
|
||
#define BDOS_VER 0x0022 /* BDOS Ver. 2.2 */
|
||
#define OS_TYPE 0x2000 /* CCP/M Ver. 2.0 */
|
||
#endif
|
||
|
||
#define WILDCARD "*.*" /* CP/M full filespec wildcard */
|
||
#define RET_DISP 0x00fe /* f_errmode, return & display */
|
||
#define NO_RET 0x0000 /* f_errmode, no return */
|
||
#define FPAR_ERR 0xffff /* f_parse error return code */
|
||
#define CR_FIELD 32 /* CR FCB field index */
|
||
#define EX_FIELD 12 /* EX FCB field index */
|
||
#define F6_FIELD 6 /* F6' attribute (READ ONLY) */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Misc. defines |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define CR '\015' /* carriage return */
|
||
#define LF '\012' /* line feed */
|
||
#define FF '\014' /* form feed */
|
||
#define SP '\040' /* space */
|
||
#define HT '\011' /* horizontal tab */
|
||
|
||
#define ERROR -1 /* error found return code */
|
||
#define MATCH 0 /* sting compare match code */
|
||
#define YES 1 /* condition met */
|
||
#define NO 0 /* condition not met */
|
||
#define OK 1 /* boolean truth */
|
||
#define NOT_OK 0 /* boolen false */
|
||
#define INVALID_FILE -2 /* invalid filespec */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Macro definitions |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define islower(c) ('a' <= (c) && (c) <= 'z')
|
||
#define isupper(c) ('A' <= (c) && (c) <= 'Z')
|
||
#define isdigit(c) ('0' <= (c) && (c) <= '9')
|
||
#define isalpha(c) (islower(c) | isupper(c))
|
||
#define tolower(c) (isupper(c) ? ((c)+0x20):(c))
|
||
#define toupper(c) (islower(c) ? ((c)-0x20):(c))
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Valid Command Line Options |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
#define OP_GROUP "GROUP" /* User group/number option */
|
||
#define OP_PAGE "PAGE" /* Page mode/length option */
|
||
#define OP_NOPAGE "NOPAGE" /* No page mode option */
|
||
#define OP_SYSTEM "SYSTEM" /* System files option */
|
||
#define OP_DIRECTORY "DIRECTORY" /* Directory files option */
|
||
#define OP_XFCB "XFCB" /* XFCB only option */
|
||
#define OP_CONFIRM "CONFIRM" /* Confirm option */
|
||
#define OP_GET "GET" /* Get information option */
|
||
#define OP_FILE "FILE" /* FILE option (not) XFCB */
|
||
#define OP_NOCONFIRM "NOCONFIRM" /* No confirm option */
|
||
#define OP_TAB "TAB" /* Expand tabs option */
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| Global structure definitions |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
struct _cbuf /* BDOS c_readstr buffer */
|
||
{
|
||
BYTE max_char; /* max. char. to read */
|
||
BYTE nchar; /* actual # char. read */
|
||
BYTE buffer[DMA_LEN+2]; /* line buffer */
|
||
};
|
||
|
||
struct _pfcb /* BDOS F_PARSE file cont. blk */
|
||
{
|
||
BYTE *fname; /* ASCII file spec. */
|
||
BYTE *fcbaddr; /* FCB address */
|
||
};
|
||
|
||
struct _fcblst /* expfcb link list entry of FCB's */
|
||
{
|
||
BYTE fcb_buff[FCB_LEN]; /* FCB buffer */
|
||
struct _fcblst *next_fcb; /* ptr to next entry */
|
||
};
|
||
|
||
struct _oplist
|
||
{
|
||
BYTE opname[14]; /* command option name */
|
||
WORD max_num; /* max. number spec. */
|
||
};
|
||
|
||
/*----------------------------------------------------------------------*\
|
||
| External Variables |
|
||
\*----------------------------------------------------------------------*/
|
||
|
||
EXTERN WORD _EXTERR; /* AX save area; kludge to get all of AX */
|
||
EXTERN WORD _SYSERR; /* CX save area; kludge to get CX error codes */
|
||
|