]> cloudbase.mooo.com Git - z180-stamp.git/blob - include/z180-serv.h
Detect ZRESET polarity
[z180-stamp.git] / include / z180-serv.h
1 /*
2 * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7 #ifndef Z180_SERV_H
8 #define Z180_SERV_H
9
10 #include <stdbool.h>
11 #include "ff.h"
12
13 void setup_z180_serv(void);
14 void restart_z180_serv(void);
15
16
17 /* CP/M drive interface */
18
19 /* TODO: Variable Disk Format */
20 #define CONFIG_CPM_DISKSIZE (8*1024*1024L)
21
22 typedef uint8_t drv_opt_t;
23
24 #define DRV_OPT_RO (1<<0) /* Drive is write protected */
25 #define DRV_OPT_DEBUG (1<<1) /* Debug this drive */
26 #define DRV_OPT_REATTATCH (1<<7) /* Change existing attachment */
27
28 typedef uint8_t drv_flag_t;
29 #define DRV_FLG_OPEN (1<<0) /* Drive is logged in from CP/M */
30 #define DRV_FLG_DIRTY (2<<0) /* Unwritten data */
31
32 struct cpm_drive_s {
33 drv_opt_t opt;
34 drv_flag_t flags;
35 uint32_t dph;
36 char *img_name;
37 FIL fd;
38 };
39
40 /* Return codes */
41
42 #define AT_OK 0
43 #define AT_ERROR 1
44 #define AT_RANGE 2
45 #define AT_ALREADY 3
46 #define AT_NOT 4
47 #define AT_NOFILE 5
48 #define AT_NOMEM 6
49 #define AT_OPEN 7
50 #define AT_OTHER 8
51
52
53 int drv_list(void);
54 int drv_detach(uint8_t drv);
55 int drv_attach(uint8_t drv, const char *filename, drv_opt_t options);
56
57 #endif /* Z180_SERV_H */