Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

129 lines
2.5 KiB
C

/* CP/M INTERFACE HEADER FILE
*/
/* Modified to include additional CP/M function defi-
nitions and DPB structure definition 07/20/82 (DMH)
*/
/* Modified to include BIOS header 10/13/82 (DMH)
*/
/* Modified to include size of DPB 10/15/82 (DMH)
*/
#define FCB struct fcb
#define FCBLEN sizeof(FCB)
struct fcb {
TEXT et; /* assumed zero */
TEXT fn[8]; /* blank padded */
TEXT ft[3]; /* ditto */
TINY ex; /* start with zero */
TEXT pad[2]; /* assumed zero by CP/M */
TINY rcount; /* [0, 128] */
TINY dmap[16]; /* eight records per 1024 byte cluster */
TINY nr; /* next record to read/write */
TINY bleft;
TEXT *bnext;
LONG lseek;
COUNT bufseg;
TEXT buf[128];
};
/* CP/M Disk Parameter Block
*/
#define DPB struct dpb
#define DPBLEN sizeof(DPB)
struct dpb {
WORD spt; /* Sectors per track */
BYTE bsh; /* Block shift factor */
BYTE blm; /* Block mask */
BYTE exm; /* Extent mask */
WORD dsm; /* Drive capacity */
WORD drm; /* Directory capacity */
BYTE al0; /* Directory allocation 0 */
BYTE al1; /* Directory allocation 1 */
WORD cks; /* Check vector size */
WORD off; /* Track offset */
};
/* CP/M Disk Parameter Header
*/
#define DPH struct dph
#define DPHLEN sizeof(DPH)
struct dph {
BYTE *xltp; /* Translation vector address */
WORD dphscr[3]; /* CP/M scratch pad area */
BYTE *dirbufp; /* CP/M directory buffer */
DPB *dpbp; /* DPB address */
BYTE *csvp; /* Check vector address */
BYTE *alvp; /* Allocation vector address */
};
/* the Whitesmiths control block
*/
#define WCB struct wcb
struct wcb {
TINY flags, dev;
FCB *pf;
};
/* flag values:
*/
#define WOPEN 1
#define WDIRT 2
#define WSTD 4
#define WCR 010
#define WXDIRT 020
#define WXOPEN 040
/* device values:
*/
#define LST -4
#define PUN -3
#define RDR -2
#define CON -1
/* intermodule communication
*/
#define CTRLZ 032
#define EOF 1
#define FAIL -1
#define MCREATE 0
#define MOPEN 1
#define MREMOVE 2
#define MWRITE 4
#define SYSBUF 0x80
/* CP/M innards
*/
#define CRDCON 1
#define CWRCON 2
#define CRDRDR 3
#define CWRPUN 4
#define CWRLST 5
#define CGIOST 7
#define CSIOST 8
#define CPRBUF 9
#define CRDBUF 10
#define CICRDY 11
#define CLFTHD 12
#define CINIT 13
#define CSDRNO 14
#define COPEN 15
#define CCLOSE 16
#define CSRCH 17
#define CSRCHN 18
#define CDEL 19
#define CREAD 20
#define CWRITE 21
#define CMAKE 22
#define CRENAME 23
#define CILOGIN 24
#define CGDRNO 25
#define CSETAD 26
#define CIALLOC 27
#define CIPARMS 31