Floppy Image program

Purpose of this program is making image files of floppies in first place, for usage with emulators on PC.  It works under Windows XP, Win2K and later. For instance it can fast make images of 800KB, 1600KB floppies. It is thankfully to Simon Owen, who wrote fdrawcmd - low level floppy driver, which overrides limitations of standard Windowses floppy driver.
floim97.png
Current version 0.97 works only with floppy drive A. Insert floppy to drive and click on icon A at top left. It will read parameters of disk, and display them. You my modify parameters by need, and if you know what are you doing.
If boot sector is unreadable, you must set parameters - it may require couple tries (and later need to hexedit image file). Scan floppy is for determining parameters if they are non-standard, or boot sector is damaged. It prints out sector numbers in tracks, hexadecimal.
Range of scan will be by values in Tracks and Sides edit boxes.
To make image file click on Floppy to Image, choose ST, MSA or DSK, give filename and prg. will save it to standard ST(=DSK) or MSA file, and generate log file (if checked) with same name, but extension 'log' - with list of bad sectors by read. It will work fine with non-protected disks.
  You may write images (ST, DSK or MSA) to floppies, with or without format - if format is checked it will work slower, but may be necessary if target disk is formatted with different parameters prior. In any case, before clicking on Image to Floppy, first insert floppy disk and click on A, then click Open Image File and select. After it you may correct parameters if they aren't OK (case of non-standard boot sector
). Note: write or format of 11 sector/track will not produce usable floppy - reason is inability of PC's floppy controller to do it.
ST < > MSA  is for conversion from ST to MSA or vice-versa of opened image file (with Open Image file but.) .
By floppies in bad condition it is worth to set Retries to value 2-5. Don't expect miracles of it. My experience is that with old floppies is good to repeat reading of whole disk  4-5 times, and it will have at end less bad sectors.
Button Floppy to STT saves images in STT format, which is less known. It is Steem specific, and not fully developed. I choosed it, because may be expanded, and is supported at least somehow. For now, it can only save floppies with non-standard sector numbers on tracks. Chaos Strikes Back partially works - it can be started, but no position save (no weak sector flags in current STT spec.) 
Button STT to floppy writes STT images to floppies.
Small floppy shape button with text STT and question mark is for getting track and sector layout of STT files. Select STT file, and program will generate TXT file with same name. There is list of sectors by tracks, after x is sectorsize code: 2 is regular 512 bytes, 3 is 1024 bytes etc...

Browsing, extracting & adding files from/to ST floppies:

 
You may extract & add files direct from/to floppies or from images. Click on Extract files, or Extract from img. button, and will get following dialog:
stfbex.png
 
May select multiple files at once. It will save all in current directory, which may be changed with button Dest Dir. Opening subdirectory is possible via double-click on it, or with button Open DIR . Button DIR Up is for back one subdir. level (to parent dir.). If DIR is selected program will save all files from all subdirectories recursively.

When click Add files you may select multiple files with Windows fileselector. Create New folder by need on floppy. Under button enter directory name by standard DOS 8.3 filename system .Checkbox Current time (else filetime) is for both extract and add files, and determines timestamp on copies of files. Adding is possible to floppies and ST(DSK) image files.

For making things easier here is small archive with 2 empty floppy images: Empty Floppies . One is standard PC 720KB and other is 800KB, much used on ST. If you want to transfer (run) some files which you have on PC - on ST, just add them to empty image and then write it to floppy. With 720KB one you have more ways - write it to floppy, and then can add/delete to it with explorer or Total Commander.



   Sam Coupe floppy file extraction:

 From V 0.85 Sam Coupe floppy support is added.
samfex.png
Here may select multiple files too. From floppy or DSK image files.



ZX Spectrum floppy PP format file extraction and write:

 
If such format (for floppy interface on this site) is detected following dialog will open when click on 'Extract files' :
zxfpb.png
Select side A or B - then clicking on files in left box selects them for transfer - they appear in right box. With 'Save sel.' it will be transferred to PC.
Resulting file may be TAP file , Z80 snapshot.  If length ( last column at Cat: )  is 49152 it will be Z80. It is possible to save ZX files directly, without header - just check 'Save bin.', and all will be saved so, with extensions bin. You may select max 32 files at once. However, it is not wise to select lot of files for TAP at once - because all will go in single TAP file. Best way is as it is shown on pic. above - first select BASIC loader and then CODE (after it). Most of programs is recorded so.
'Erase sel.' is for erasing ZX files. It works little unusual - may erasing only last file in charea. But you may select again multiple files, just select them in order from last to up .

PC > ZX:

Click on 'PC > FloP' button, and may select multiple files with Win. fileselector:

pczxfs.png
Supported filetypes are: SCR - ZX screen, exactly 6912 bytes long. SNA - old snapshot files.  Z80 snapshot - V 1.45, V 2.01 & V 3.0 , only for 48K, for now. Plus TAP files and BINary files - bin ones will be copied directly as CODE files, with start address 25000, max len. 48KB. Transfer mode depends on file extension. Because authors of software, and especially 'authors' of TAP files had pretty limited naming imagination, and to prevent to see too often message like: chabr3.png I implemented some autonaming system. In case of duplicate name in TAP file, prog. will rename it to re.xxx.ZXfilename . 're' may be changed in editbox 'Rename:'. xxx is auto-counter in range 1 to 255. If begin character is illegal (not A-z, 0-9) it will be changed to 9. Codes above 127 and below 32 in filenames will be changed to '?'- to make edit easier.
After getting such renamed files it is good to correct BASIC loader, and save datas with some meaningful names: Corrections will be needed for commands like: LOAD "" - it is not allowed by disk systems, so enter in brackets filename. Mine ROM also not accepts LOAD "pic" SCREEN$ - change it to LOAD "pic" CODE [16384] . Luckily, ZX filesystem is case sensitive, so you may play with RePTON, rEpToN etc... .
In some cases transferred snapshot will not work - it is because of limited hardware. Stack may be overloaded. In such case help is to make another snapshot file on PC (looking for another on WEB). Rule is: make snapshot when game is paused.  In case of 'Name already exists' by snapshots just simple rename PC file...
Some TAP files have headerless (and nameless) parts - such blocks will be transferred to files with names: hl.1.PCfilename, hl.2.PCfilename etc. Of course, here is also possible to change prefix 'hl' to different - editbox 'H'less:'. User must find way how to make later load of those files normally - some machine code knowledge is necessary.
For experts: If I reg points to ROM, it must be #39 for IM 2 mode, because ROM is full with code.


Future improvements, features: improving imaging of non-standard, protected floppies. Adding some new image formats ( DFI ).
I think here on protections like by 'Chaos Strikes Back' - it has on first track sector number #F7 instead 8, and before it is one 'weak' sector. So, need image format which allows specific sector numbers (STT has it), flags for weak sectors and CRC errors, plus ? ... Then emulator need to report CRC error by such sector read, and simulate changeable content by successive reads.

P. Putnik, July-Jan. 2006-8.