mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37595bf73c | ||
|
|
952aea46ba | ||
|
|
6a6536cf27 | ||
|
|
696368c92a | ||
|
|
e3edc9327e | ||
|
|
8d2e6a664d | ||
|
|
9db6efe7a2 | ||
|
|
8b8a22d7fb | ||
|
|
0a70344bc1 | ||
|
|
e77d01911c |
1
Makefile
1
Makefile
@@ -198,6 +198,7 @@ $(call do-encodedecodetest,commodore,scripts/commodore1541_test.textpb,--192 --d
|
||||
$(call do-encodedecodetest,commodore,,--800 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,commodore,,--1620 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,hplif,,--264 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,hplif,,--608 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,hplif,,--616 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,hplif,,--770 --drive.tpi=135)
|
||||
$(call do-encodedecodetest,ibm,,--1200 --drive.tpi=96)
|
||||
|
||||
BIN
doc/FluxEngine_eagle_pcb.zip
Normal file
BIN
doc/FluxEngine_eagle_pcb.zip
Normal file
Binary file not shown.
@@ -93,6 +93,22 @@ You're now looking at the _top_ of the board.
|
||||
row of header sockets allowing you to plug the board directly onto the floppy
|
||||
disk drive; for simplicity I'm leaving that as an exercise for the reader.)
|
||||
|
||||
### If you want to use a PCB
|
||||
|
||||
Alternatively, you can make an actual PCB!
|
||||
|
||||
<div style="text-align: center">
|
||||
<a href="pcb.png"><img src="pcb.png" style="width:80%" alt="the PCB schematic"></a>
|
||||
</div>
|
||||
|
||||
This is a passive breakout board designed to take a PSoC5 development board, a
|
||||
standard 34-way PC connector, and a 50-way 8" drive connector. It was
|
||||
contributed by a user --- thanks!
|
||||
|
||||
<a href="FluxEngine_eagle_pcb.zip">Download this to get it</a>. This package
|
||||
contains the layout in Eagle format, a printable PDF of the PCB layout, and
|
||||
gerbers suitable for sending off for manufacture.
|
||||
|
||||
### Grounding
|
||||
|
||||
You _also_ need to solder a wire between a handy GND pin on the board and
|
||||
@@ -185,10 +201,14 @@ generic libusb stuff and should build and run on Windows, Linux and OSX as
|
||||
well, although on Windows it'll need MSYS2 and mingw32. You'll need to
|
||||
install some support packages.
|
||||
|
||||
- For Linux (this is Ubuntu, but this should apply to Debian too):
|
||||
- For Linux with Ubuntu/Debian:
|
||||
`libusb-1.0-0-dev`, `libsqlite3-dev`, `zlib1g-dev`,
|
||||
`libudev-dev`, `protobuf-compiler`, `libwxgtk3.0-gtk3-dev`,
|
||||
`libfmt-dev`.
|
||||
- For Linux with Fedora/Red Hat:
|
||||
`git`, `make`, `gcc`, `gcc-c++`, `xxd`, `protobuf-compiler`,
|
||||
`protobuf-devel`, `fmt-devel`, `systemd-devel`, `wxGTK3-devel`,
|
||||
`libsqlite3x-devel`
|
||||
- For OSX with Homebrew: `libusb`, `pkg-config`, `sqlite`,
|
||||
`protobuf`, `truncate`, `wxwidgets`, `fmt`.
|
||||
- For Windows with MSYS2: `make`, `mingw-w64-i686-libusb`,
|
||||
|
||||
@@ -15,6 +15,7 @@ encoding scheme.
|
||||
|
||||
- Format variants:
|
||||
- `264`: 264kB 3.5" 66-track SSDD; HP9121 format
|
||||
- `608`: 608kB 3.5" 76-track DSDD; HP9122 format
|
||||
- `616`: 616kB 3.5" 77-track DSDD
|
||||
- `770`: 770kB 3.5" 77-track DSDD
|
||||
|
||||
@@ -23,12 +24,19 @@ encoding scheme.
|
||||
To read:
|
||||
|
||||
- `fluxengine read hplif --264 -s drive:0 -o hplif.img`
|
||||
- `fluxengine read hplif --608 -s drive:0 -o hplif.img`
|
||||
- `fluxengine read hplif --616 -s drive:0 -o hplif.img`
|
||||
- `fluxengine read hplif --770 -s drive:0 -o hplif.img`
|
||||
|
||||
To write:
|
||||
|
||||
- `fluxengine write hplif --264 -d drive:0 -i hplif.img`
|
||||
- `fluxengine write hplif --608 -d drive:0 -i hplif.img`
|
||||
- `fluxengine write hplif --616 -d drive:0 -i hplif.img`
|
||||
- `fluxengine write hplif --770 -d drive:0 -i hplif.img`
|
||||
|
||||
## References
|
||||
|
||||
* [A summary of the Hewlett Packard floppy disk
|
||||
formats](http://www.bitsavers.org/pdf/hp/disc/912x/HP_Flexible_Disk_Formats.pdf)
|
||||
|
||||
|
||||
BIN
doc/pcb.png
Normal file
BIN
doc/pcb.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -214,6 +214,7 @@ private:
|
||||
_directoryBlock = rbr.read_be32();
|
||||
rbr.skip(4);
|
||||
_directorySize = rbr.read_be32();
|
||||
rbr.skip(4);
|
||||
unsigned tracks = rbr.read_be32();
|
||||
unsigned heads = rbr.read_be32();
|
||||
unsigned sectors = rbr.read_be32();
|
||||
|
||||
@@ -14,6 +14,14 @@ Floppy-disk wise, they're yet more variations of the standard IBM floppy
|
||||
encoding scheme.
|
||||
>>>
|
||||
|
||||
documentation:
|
||||
<<<
|
||||
## References
|
||||
|
||||
* [A summary of the Hewlett Packard floppy disk
|
||||
formats](http://www.bitsavers.org/pdf/hp/disc/912x/HP_Flexible_Disk_Formats.pdf)
|
||||
>>>
|
||||
|
||||
drive {
|
||||
high_density: false
|
||||
}
|
||||
@@ -55,10 +63,6 @@ option_group {
|
||||
layoutdata {
|
||||
sector_size: 256
|
||||
physical {
|
||||
sector: 0
|
||||
sector: 4
|
||||
sector: 8
|
||||
sector: 12
|
||||
sector: 1
|
||||
sector: 5
|
||||
sector: 9
|
||||
@@ -71,6 +75,56 @@ option_group {
|
||||
sector: 7
|
||||
sector: 11
|
||||
sector: 15
|
||||
sector: 4
|
||||
sector: 8
|
||||
sector: 12
|
||||
sector: 16
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
trackdata {
|
||||
emit_iam: false
|
||||
target_rotational_period_ms: 200
|
||||
target_clock_period_us: 4
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 44
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option {
|
||||
name: "608"
|
||||
comment: '608kB 3.5" 76-track DSDD; HP9122 format'
|
||||
|
||||
config {
|
||||
layout {
|
||||
tracks: 76
|
||||
sides: 2
|
||||
layoutdata {
|
||||
sector_size: 256
|
||||
physical {
|
||||
sector: 1
|
||||
sector: 5
|
||||
sector: 9
|
||||
sector: 13
|
||||
sector: 2
|
||||
sector: 6
|
||||
sector: 10
|
||||
sector: 14
|
||||
sector: 3
|
||||
sector: 7
|
||||
sector: 11
|
||||
sector: 15
|
||||
sector: 4
|
||||
sector: 8
|
||||
sector: 12
|
||||
sector: 16
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,9 +244,12 @@ private:
|
||||
uint32_t usedBlocks = std::stoul(
|
||||
metadata.at(Filesystem::USED_BLOCKS));
|
||||
|
||||
diskSpaceGauge->Enable();
|
||||
diskSpaceGauge->SetRange(totalBlocks * blockSize);
|
||||
diskSpaceGauge->SetValue(usedBlocks * blockSize);
|
||||
if (!totalBlocks)
|
||||
throw std::out_of_range("no disk usage data");
|
||||
|
||||
diskSpaceGauge->Enable();
|
||||
diskSpaceGauge->SetRange(totalBlocks);
|
||||
diskSpaceGauge->SetValue(usedBlocks);
|
||||
}
|
||||
catch (const std::out_of_range& e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user