]>
Commit | Line | Data |
---|---|---|
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 <stdint.h> | |
11 | #include <stdbool.h> | |
12 | #include "ff.h" | |
13 | ||
14 | void setup_z180_serv(void); | |
15 | void restart_z180_serv(void); | |
16 | ||
17 | ||
18 | /* CP/M drive interface */ | |
19 | ||
20 | /* TODO: Variable Disk Format */ | |
21 | #define CONFIG_CPM_DISKSIZE (8*1024*1024L) | |
22 | ||
23 | typedef uint8_t drv_opt_t; | |
24 | ||
25 | #define DRV_OPT_RO (1<<0) /* Drive is write protected */ | |
26 | #define DRV_OPT_DEBUG (1<<1) /* Debug this drive */ | |
27 | #define DRV_OPT_REATTATCH (1<<7) /* Change existing attachment */ | |
28 | ||
29 | typedef uint8_t drv_flag_t; | |
30 | #define DRV_FLG_OPEN (1<<0) /* Drive is logged in from CP/M */ | |
31 | #define DRV_FLG_DIRTY (2<<0) /* Unwritten data */ | |
32 | ||
33 | struct cpm_drive_s { | |
34 | drv_opt_t opt; | |
35 | drv_flag_t flags; | |
36 | uint32_t dph; | |
37 | char *img_name; | |
38 | FIL fd; | |
39 | }; | |
40 | ||
41 | ||
42 | int drv_list(void); | |
43 | int drv_detach(uint8_t drv); | |
44 | int drv_attach(uint8_t drv, const char *filename, drv_opt_t options); | |
45 | ||
46 | #endif /* Z180_SERV_H */ |