+ if (f_ws != NULL) {
+ printf("writing %ld bytes:\n", size_ws);
+ for (a = 0; a < size_ws; a += write_step) {
+ uint16_t b = 0xffff;
+ ssize_t r;
+
+ len = min(size_ws - a, write_step);
+ r = fread(&b, 1, len, f_ws);
+ if (r != len) {
+ perror("\nfread");
+ return 1;
+ }
+ if (write_step == 2)
+ b = htons(b);
+ io->write_bus(fd, address_in + a, b);
+
+ if (!(a & 0x3ff))
+ print_progress(a, size_ws);
+ }
+ print_progress(a, size_ws);
+ }