mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 08:24:18 +00:00
129 lines
2.5 KiB
C
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
|