Comments (7)
That looks interestingly cursed. Also, very inefficient --- you need a largish gap between records to give space for the drive to turn the write and erase heads on and off, so the more records you have the more wasted space there is.
For technical reasons FluxEngine requires all the sectors on each track to have the same size, but I think this is the case here, right? If you can get me a complete flux file I can take a look. It'd also be cool to add filesystem support for it.
from fluxengine.
Nice that you also got intrigued by the strange format!
Very inefficient yes. From my understanding the format is somewhat similar to what IBM used on the disks for their S/360 / S/370 line of mainframes. A file consisted of a number of tracks with a certain record size which was reflected directly in the hardware.
All sectors are the same on each track. Just varying between different tracks.
There are Catweasel dumps in the repo I linked to under the directory "Q1 disks". The kludge-code provided in the repo reads those files and are able to decode it.
from fluxengine.
Hello --- I finally had a chance to look at this. Unfortunately the dumps you've got aren't the .cwf
files that I know of. Where did you get them?
from fluxengine.
The dumps are debug output from Catweasel, using the CW2DMK DOS program. The files contains a byte per transition. The high bit is the index marker. The seven lower bits are the count between two transitions. The code q1decode.c is able to decode them.
from fluxengine.
It looks like CW2DMK is third-party software which uses a different flux format to the original Catweasel software. Which is nice. I was hoping not to have to write a decoder...
Incidentally, I'd rather like to implement native Catweasel support in FluxEngine, so that you can use it on Catweasel devices directly. Except, I don't have one! It looks like there's a library in CW2DMK which should do all the hard parts. Would you be at all interested in testing this?
from fluxengine.
I have the DMK files reading and have progressed some way towards reading the disks --- I have some data. I see what you mean about these weird. I'm not actually sure that FluxEngine's architecture can support them as the sector sizes can vary from disk to disk. Hoiw would you even encode disk images? You might have to go directly from the low-level encoding to files. I'll have to think about this.
The disks, however, seem to be riddled with bad sectors. I'm getting very few clean decodes. The log in the README produced by your tool seems much better. Which disk was that made with?
from fluxengine.
We have a Q1 machine in datamuseum.dk and I have reverse engineered this format now.
I have documented what I have found out here:
https://github.com/Datamuseum-DK/FloppyTools/blob/main/q1_microlite.py
(Feel free to poach my decoders from that project into FluxEngine, I only use python because it's faster to prototype and to recover really stubborn sectors by hand that way)
I have also tried running my decoder against @MattisLind's images, but because the streams have only a single media rotation, a lot of sectors are missing.
from fluxengine.
Related Issues (20)
- make install gone? HOT 3
- Won't run or compile on macOS Catalina HOT 2
- Fluxengine read of Brother knitting machine disk
- Error building on OSX HOT 1
- Regression: commandline-only build no longer works HOT 3
- FB100 80-track mode
- Fluxengine.app Mac version won't load libs HOT 2
- Again, Fluxengine doesn't install on Mac HOT 1
- fluxengine inspect using Windows command line displays non printable characters HOT 1
- Recursion isn't detected properly
- FluxEngine-GUI: where is the customized configfile stored? HOT 5
- fluxengine rpm HOT 5
- Problem building fluxengine under Ubuntu 23.10 HOT 1
- "Cannot open input file" error HOT 1
- fluxengine with greasweazel HOT 2
- make install broken in chroots
- 420k MaxiForm disks HOT 1
- Batch copy all files from 3.5″ Mac floppy disks with creation dates? HOT 7
- build/ab.mk:31: .obj//build.mk: No such file or directory - build attempt fails immediately HOT 5
- The firmware file doesn't work when installed on CY8CKIT-059.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluxengine.