diff options
Diffstat (limited to 'include/z180-serv.h')
-rw-r--r-- | include/z180-serv.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/z180-serv.h b/include/z180-serv.h new file mode 100644 index 0000000..760fa04 --- /dev/null +++ b/include/z180-serv.h @@ -0,0 +1,46 @@ +/* + * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef Z180_SERV_H +#define Z180_SERV_H + +#include <stdint.h> +#include <stdbool.h> +#include "ff.h" + +void setup_z180_serv(void); +void restart_z180_serv(void); + + +/* CP/M drive interface */ + +/* TODO: Variable Disk Format */ +#define CONFIG_CPM_DISKSIZE (8*1024*1024L) + +typedef uint8_t drv_opt_t; + +#define DRV_OPT_RO (1<<0) /* Drive is write protected */ +#define DRV_OPT_DEBUG (1<<1) /* Debug this drive */ +#define DRV_OPT_REATTATCH (1<<7) /* Change existing attachment */ + +typedef uint8_t drv_flag_t; +#define DRV_FLG_OPEN (1<<0) /* Drive is logged in from CP/M */ +#define DRV_FLG_DIRTY (2<<0) /* Unwritten data */ + +struct cpm_drive_s { + drv_opt_t opt; + drv_flag_t flags; + uint32_t dph; + char *img_name; + FIL fd; +}; + + +int drv_list(void); +int drv_detach(uint8_t drv); +int drv_attach(uint8_t drv, const char *filename, drv_opt_t options); + +#endif /* Z180_SERV_H */ |