#acl FreaknetGroup:read,write,admin,delete,revert All:read = Fluxengine scratchpad = <> == Resources == * https://ucsd-psystem-fs.sourceforge.net/download.html * https://github.com/archivistsguidetokryoflux/archivists-guide-to-kryoflux/tree/master * https://cowlark.com/fluxengine/ == Notes == {{{ fluxengine read ibm -s lmz-inglese.flux:t=0-76 --overwrite -o prova5.img:c=77:h=2:s=16:b=512 cpmls -f diskformatwemade prova5.img root@rover:/home/asbesto/Desktop/cattolica/importanti1# head -n 10 /etc/cpmtools/diskdefs diskdef diskformatwemade seclen 1024 tracks 77 sectrk 16 blocksize 1024 maxdir 64 skew 1 boottrk 2 os 2.2 end }}} {{{ fluxengine read ibm -s dade01.flux:t=0-76 -o dadeprova.img:c=77:h=2:s=16:b=512 ls strings dell'originale 2 mega: strings dade01.img > dade01.strings strings della prova fatta specificando parametri come sotto: strings dadeprova.img > dadeprova.strings ls -la diff dadeprova.strings dade01.strings | less sono diversi!!! skippiamo la prima traccia: 513 fluxengine read ibm -s dade01.flux:t=1-76 -o dadeprova176.img:c=76:h=2:s=16:b=512 514 fluxengine read ibm -s dade01.flux:t=1-76 -o dade176.img 515 strings dade176.img > dade176.strings 516 strings dadeprova176.img > dadeprova176.strings 518 diff dade176.strings dadeprova176.strings gli strings sono identici! QUINDI unica differenza traccia zero! 519 less dade01.log che infatti e' letta diversamente: 0.0: 497.724 ms in 203840 bytes 154 records, 77 sectors; 2.01us clock (497kHz); logical track 0.0; 3328 bytes decoded. 0.1: 497.694 ms in 189696 bytes 155 records, 77 sectors; 1.00us clock (1000kHz); logical track 0.1; 6656 bytes decoded. 1.0: 497.486 ms in 191872 bytes 96 records, 48 sectors; 1.01us clock (993kHz); logical track 1.0; 8192 bytes decoded. 1.1: 497.39 ms in 191680 bytes 96 records, 48 sectors; 1.00us clock (996kHz); logical track 1.1; 8192 bytes decoded. }}} == Hardware connections == * Flat cable pin 1 to the micro-USB side. * Non-inverted floppy connection to the drive! Red wire to the dent side. This is the same for 5"1/4 and 8" disks. === How to turn on === Turn on the FD FIRST, and connect the fluxengine usb cable AFTER. Drive must turn LED on for about 2 seconds, eventually parking the head. If LED is fixed ON, this means some cable are upside down! ./fluxengine rpm must read the rpm speed. DO IT WITH A DISK INSIDE == Test cases == * IBM PC 360K disk on 360KB drive: ./fluxengine read ibm -s:t=0-40 -o test.img * ???IBM PC 1.2MB on 1.2MB drive: ./fluxengine read ibm -o test.img (to be tested) * IBM PC 360K Floppy disk on a 1.2MB DRIVE: ./fluxengine read ibm -s:t=0-79x2 -o test.img Read data and flux, IBM PC 360KB Disk on 360K drive: * fluxengine read ibm -s:t=0-40 --retries=0 --revolutions=10 --overwrite --write-flux=testdisk.flux * Olivetti M20: using 1.2MB disk drive: fluxengine read ibm --retries=10 --revolutions=10 --write-flux=testdisk.flux == 8 inches == * fluxengine read ibm -s:t=0-76 --retries=1 --revolutions=3 --overwrite --write-flux=prova.flux -o prova.img Sometimes 77 === This is OK === * name="prova"; fluxengine read ibm --retries=1 --revolutions=3 --overwrite --write-flux=$name.flux --visualiser-period=167 --write-svg=$name.svg -o $name.img === svg test === * seq 1 380 | while read i; do fluxengine read ibm -s prova.flux --visualiser-period=$i --write-svg=$i.svg ; done == FINAL Automatic script to dump disks :) == {{{ #!/bin/bash echo usage: leggi name nome=$1 # normale 0.2, --bit-error-threshold=0.4 da provare in caso di errori # :s=0 single side read fluxengine read ibm -s:t=0-77 --retries=100 --revolutions=5 --bit-error-threshold=0.4 --overwrite --write-flux=$nome.flux -o $nome.img 1>$nome.log 2>&1 & #fluxengine read ibm -s:t=0-77 --retries=10 --revolutions=5 --bit-error-threshold=0.4 --overwrite --write-flux=$nome.flux -o $nome.img 1>$nome.log 2>&1 & #fluxengine read ibm -s:t=0-77 --retries=5 --revolutions=5 --bit-error-threshold=0.5 --overwrite --write-flux=$nome.flux -o $nome.img 1>$nome.log 2>&1 & tail -f $nome.log # --revolutions=X: when reading, spin the disk X times. X can be a floating # point number. The default is usually 1.25. Some formats default to 1. # Increasing the number will sample more data, and can be useful on dubious # disks to try and get a better read. # # --pulse-debounce-threshold controls whether FluxEngine ignores pairs of # pulses in rapid succession. This is common on some disks (I've # observed them on Brother word processor disks). # # --clock-interval-bias adds a constant bias to the intervals between pulses # before doing decodes. This is very occasionally necessary to get clean # reads - for example, if the machine which wrote the disk always # writes pulses late. If you try this, use very small numbers (e.g. 0.02). # Negative values are allowed. # # Both these parameters take a fraction of a clock as a parameter, and # you'll probably never need to touch them. }}} == HEAD CLEANER == {{{ #!/bin/bash for i in $(seq 1 20) ; do fluxengine seek -t 77 fluxengine seek -t 0 done }}} == Copy files == {{{ mkdir test cpmcp prove.img 0:* test }}} == UCSD PASCAL SYSTEM NOTES == Utility to read / manage those disk images: https://ucsd-psystem-fs.sourceforge.net/ it compiles under GNU/Linux: configure, make, make install. (install missing libraries if required) === Mount a disk image === ((( ucsdpsys_mount box_05/05.06.img /mnt }}} === Converting files === Example is for a TEXT file Always copy the file on another place, if not, you will edit the disk image {{{ cp SQ.TEXT /tmp cd \tmp ucsdpsys_text -d SQ.TEXT less SQ.TEXT }}} and there it is! ;) == KOWALSKI == == UCSD Utils == === UCSD converting TEXT format to readable === For every directory: {{{ verde@vera:~/fluxengine/kowalski/box_11.files$ cd 11.07 verde@vera:~/fluxengine/kowalski/box_11.files/11.07$ mkdir DOCS && cp *TEXT DOCS && cd DOCS && for a in *TEXT; do ucsdpsys_text -d $a ; done && ls && cd ../.. }}} the command is just {{{ ucsdpsys_text -d FILENAME.TEXT }}} '''BEWARE: the ucsdpsys_text utility OVERWRITE the original file. It can also be used to ENCODE the .TEXT file back in the compressed form.''' === PICTURE CONVERSION === {{{ for a in LIZMIT OTTO PHOTO PIOTR PIOTR2 RESTANY SAKANE ; do convert -depth 8 -size 256x128+0 gray:$a $a.png ; done }}} == New (latest) firmware conversion for syntax, tricks etc. == David Given (dg@cowlark.com) says: Wow, you've been using a really old version of the client! That syntax predates the previous syntax change! Try this: {{{ ./fluxengine read ibm --1200 --cylinders=0-77 --decoder.retries=10 --decoder.bit_error_threshold=0.4 --drive.revolutions=5 --copy-flux-to=output.flux }}} The --1200 specifies which IBM format to use --- see https://cowlark.com/fluxengine/doc/disk-ibm.html It is possible to autodetect this but it works very badly, which was why I changed it. If you have a specific format in mind then the best thing is to produce a custom format describing it; that way FluxEngine can know whether to retry or not, giving more accurate reads. I can help with that; what platform are you reading disks for? ---- CategoryMuseo