mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37595bf73c | ||
|
|
952aea46ba | ||
|
|
6a6536cf27 | ||
|
|
696368c92a | ||
|
|
e3edc9327e | ||
|
|
8d2e6a664d |
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,,--800 --drive.tpi=135)
|
||||||
$(call do-encodedecodetest,commodore,,--1620 --drive.tpi=135)
|
$(call do-encodedecodetest,commodore,,--1620 --drive.tpi=135)
|
||||||
$(call do-encodedecodetest,hplif,,--264 --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,,--616 --drive.tpi=135)
|
||||||
$(call do-encodedecodetest,hplif,,--770 --drive.tpi=135)
|
$(call do-encodedecodetest,hplif,,--770 --drive.tpi=135)
|
||||||
$(call do-encodedecodetest,ibm,,--1200 --drive.tpi=96)
|
$(call do-encodedecodetest,ibm,,--1200 --drive.tpi=96)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ encoding scheme.
|
|||||||
|
|
||||||
- Format variants:
|
- Format variants:
|
||||||
- `264`: 264kB 3.5" 66-track SSDD; HP9121 format
|
- `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
|
- `616`: 616kB 3.5" 77-track DSDD
|
||||||
- `770`: 770kB 3.5" 77-track DSDD
|
- `770`: 770kB 3.5" 77-track DSDD
|
||||||
|
|
||||||
@@ -23,12 +24,19 @@ encoding scheme.
|
|||||||
To read:
|
To read:
|
||||||
|
|
||||||
- `fluxengine read hplif --264 -s drive:0 -o hplif.img`
|
- `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 --616 -s drive:0 -o hplif.img`
|
||||||
- `fluxengine read hplif --770 -s drive:0 -o hplif.img`
|
- `fluxengine read hplif --770 -s drive:0 -o hplif.img`
|
||||||
|
|
||||||
To write:
|
To write:
|
||||||
|
|
||||||
- `fluxengine write hplif --264 -d drive:0 -i hplif.img`
|
- `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 --616 -d drive:0 -i hplif.img`
|
||||||
- `fluxengine write hplif --770 -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)
|
||||||
|
|
||||||
|
|||||||
@@ -214,6 +214,7 @@ private:
|
|||||||
_directoryBlock = rbr.read_be32();
|
_directoryBlock = rbr.read_be32();
|
||||||
rbr.skip(4);
|
rbr.skip(4);
|
||||||
_directorySize = rbr.read_be32();
|
_directorySize = rbr.read_be32();
|
||||||
|
rbr.skip(4);
|
||||||
unsigned tracks = rbr.read_be32();
|
unsigned tracks = rbr.read_be32();
|
||||||
unsigned heads = rbr.read_be32();
|
unsigned heads = rbr.read_be32();
|
||||||
unsigned sectors = 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.
|
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 {
|
drive {
|
||||||
high_density: false
|
high_density: false
|
||||||
}
|
}
|
||||||
@@ -55,10 +63,6 @@ option_group {
|
|||||||
layoutdata {
|
layoutdata {
|
||||||
sector_size: 256
|
sector_size: 256
|
||||||
physical {
|
physical {
|
||||||
sector: 0
|
|
||||||
sector: 4
|
|
||||||
sector: 8
|
|
||||||
sector: 12
|
|
||||||
sector: 1
|
sector: 1
|
||||||
sector: 5
|
sector: 5
|
||||||
sector: 9
|
sector: 9
|
||||||
@@ -71,6 +75,56 @@ option_group {
|
|||||||
sector: 7
|
sector: 7
|
||||||
sector: 11
|
sector: 11
|
||||||
sector: 15
|
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(
|
uint32_t usedBlocks = std::stoul(
|
||||||
metadata.at(Filesystem::USED_BLOCKS));
|
metadata.at(Filesystem::USED_BLOCKS));
|
||||||
|
|
||||||
diskSpaceGauge->Enable();
|
if (!totalBlocks)
|
||||||
diskSpaceGauge->SetRange(totalBlocks * blockSize);
|
throw std::out_of_range("no disk usage data");
|
||||||
diskSpaceGauge->SetValue(usedBlocks * blockSize);
|
|
||||||
|
diskSpaceGauge->Enable();
|
||||||
|
diskSpaceGauge->SetRange(totalBlocks);
|
||||||
|
diskSpaceGauge->SetValue(usedBlocks);
|
||||||
}
|
}
|
||||||
catch (const std::out_of_range& e)
|
catch (const std::out_of_range& e)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user