Giter VIP home page Giter VIP logo

Comments (7)

davidgiven avatar davidgiven commented on August 16, 2024

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.

MattisLind avatar MattisLind commented on August 16, 2024

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.

davidgiven avatar davidgiven commented on August 16, 2024

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.

MattisLind avatar MattisLind commented on August 16, 2024

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.

davidgiven avatar davidgiven commented on August 16, 2024

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.

davidgiven avatar davidgiven commented on August 16, 2024

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.

bsdphk avatar bsdphk commented on August 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.