Differences between revisions 5 and 31 (spanning 26 versions)
Revision 5 as of 2021-01-01 16:37:40
Size: 1018
Editor: asbesto
Comment:
Revision 31 as of 2023-07-22 15:01:26
Size: 7605
Editor: asbesto
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= Appunti sull'uso della stracazzo di fluxengine = = Fluxengine scratchpad =
Line 7: Line 7:
== 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.

}}}

Line 10: Line 82:
 * Non-inverted floppy connection to the drive! Red wire to the dent side.

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.
 * 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.
Line 16: Line 92:
./fluxengine rpm must read the rpm speed. WITH A DISK INSIDE ./fluxengine rpm must read the rpm speed. DO IT WITH A DISK INSIDE
Line 20: Line 96:
 * IBM PC 360K disk on 360KB drive: ./fluxengine read ibm -s:t=0-40 -o petacci.img
 * ???IBM PC 1.2MB on 1.2MB drive: ./fluxengine read ibm -o petacci.img (to be tested)
 * IBM PC 360K Floppy disk on a 1.2MB DRIVE: ./fluxengine read ibm -s:t=0-79x2 -o petacci12.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


 
 * 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

Fluxengine scratchpad

Resources

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 :)

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

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

FluxengineAppunti (last edited 2023-07-22 15:01:26 by asbesto)