- res = f_open(&drv_table[drv].fd, drv_table[drv].img_name,
- FA_WRITE | FA_READ);
-
- debug_cpmsd("## %7lu open: '%s', (env: '%s'), res: %d\n", get_timer(0),
- drv_table[drv].img_name, disk_buffer, res);
-
- if (!res && f_size(&drv_table[drv].fd) < CONFIG_CPM_DISKSIZE) {
- unsigned int bw;
-
- debug_cpmsd(" expanding image file from %ld to %ld\n",
- f_size(&drv_table[drv].fd), CONFIG_CPM_DISKSIZE);
-
- res = f_lseek(&drv_table[drv].fd, CONFIG_CPM_DISKSIZE-CONFIG_CPM_BLOCK_SIZE);
- if (!res) {
- memset(disk_buffer, 0xe5, CONFIG_CPM_BLOCK_SIZE);
- res = f_write(&drv_table[drv].fd, disk_buffer, CONFIG_CPM_BLOCK_SIZE, &bw);
- if (res || bw < CONFIG_CPM_BLOCK_SIZE) {
- debug_cpmsd(" failed! res: %d, bytes written: %u\n", res, bw);
- }
- drv_table[drv].dirty = true;
- bg_setstat(handle_cpm_drv_to, 1);
- }
- }