Commit Graph

1618 Commits

Author SHA1 Message Date
Jeff Epler
0aed615ee5 Fix crash when reading disks written on real apple2
`readRaw8` throws an exception if you run out of data. This did not
turn up during my testing, because I was reading back a disk written by
fluxengine, so everything was aligned to the index pulse and no sector
ever straddled a revolution. On a "real" apple2-written disk, this was
not the case.

Incidentally, the "extra 0" problem exists on a real apple2-written
floppy as well.
2022-03-07 22:40:33 -06:00
Jeff Epler
79eec41bcd Revamp how extra zeros are handled
It's not OK to call seek() here. Instead, add a function which can read
an apple 8-bit flux value in terms of readRaw8 and readRawBits. Apply
this function to all the data bytes, rather than just the first one.
2022-03-02 07:45:24 -06:00
Jeff Epler
386d22a45e Makefile: give a clear error at build time if wx is not available 2022-03-02 07:44:09 -06:00
Jeff Epler
d90fcbf7ad Handle extra 0-bits at the start of a sector 2022-03-02 07:43:45 -06:00
Jeff Epler
c4e4520058 apple2 decoder: explain the progression of sector status values 2022-03-02 07:43:43 -06:00
David Given
dd49f01499 Merge pull request #480 from jepler/apple2encoder
Add apple2 encoder
2022-03-02 10:24:05 +00:00
Jeff Epler
2c698cee71 Mark apple2 image writing as dinosaur, add note about writing, not ro anymore 2022-03-01 19:05:53 -06:00
Jeff Epler
87cb4b6d18 Add apple2 encoder
This is tested with encodedecodetest.sh but is not tested on HW yet.
It's likely that the sector order (interleave) doesn't match real systems.
2022-02-28 16:22:53 -06:00
David Given
2b7c747209 Merge pull request #471 from jepler/rx50-pdp11-format
Add support for PDP-11 RX-50 disks
2022-02-27 18:59:10 +00:00
Jeff Epler
707308b490 Fix alphetization of format list 2022-02-27 10:47:33 -06:00
Jeff Epler
ed1012bf07 Fix rx50 format description & test it
gap3 follows f10f52ded8/src/image/img.c (L135)
2022-02-27 10:47:22 -06:00
David Given
cc5b2bc27b Merge pull request #479 from davidgiven/wxw
Add a GUI.
2022-02-27 12:24:38 +00:00
David Given
a1a7cfa735 We don't need the rich text wxwidgets addon. 2022-02-27 13:12:29 +01:00
David Given
4624ff92df Remember to set the high density bit. 2022-02-27 13:11:11 +01:00
David Given
47dde98728 Include the GUI exe in release artifacts. 2022-02-27 13:05:39 +01:00
David Given
6f1031e95b Writing flux now works. 2022-02-27 12:54:57 +01:00
David Given
d5245e3784 Don't capture parameters in static blocks. That never ends well... 2022-02-27 12:51:51 +01:00
David Given
d97e72edb6 The image writers now log to the logger. 2022-02-27 00:27:44 +01:00
David Given
23b9e9ef5f The image readers now log to the logger. 2022-02-27 00:20:20 +01:00
David Given
02c7b86f85 You can write images now. 2022-02-27 00:07:59 +01:00
David Given
528454c361 You can now load images into memory. 2022-02-26 23:32:24 +01:00
Jeff Epler
9ae3f7e61d Correct description of media type 2022-02-26 15:41:14 -06:00
David Given
dd33922810 Errors are now caught. 2022-02-26 19:52:07 +01:00
David Given
b52fdb3155 Additional settings pane now works. 2022-02-26 19:33:20 +01:00
Jeff Epler
edf9f9e714 Implement review suggestions 2022-02-26 12:06:08 -06:00
David Given
38eda6ed3c Add log and settings panels. The log panel is populated during a read (or
write).
2022-02-26 18:36:21 +01:00
David Given
32f0c5dc09 Update buttons as the application state changes. 2022-02-26 18:10:00 +01:00
David Given
b45b45b1b3 Enable double buffering for the visualiser in Windows. 2022-02-26 13:36:28 +00:00
David Given
f1c60b7177 Adjust header order so that things build on Windows. 2022-02-26 13:33:00 +00:00
David Given
2d8ff826f3 Merge pull request #475 from hharte/improve-hard-sector-decode
Improve hard sector decode
2022-02-26 12:37:48 +00:00
Howard M. Harte
d028db1ba3 northstar: Improve decode a little more.
seekToPattern() can skip the index hole if it doesn't find the
SYNC pattern.  If this happens too close to the end of the flux
stream, it can result in a conflicted sector.  In this case,
discard the sector.
2022-02-25 22:08:57 -08:00
Howard M. Harte
2d4e2b87bc micropolis: Improve decode a little more.
seekToPattern() can skip the index hole if it doesn't find the
SYNC pattern.  If this happens too close to the end of the flux
stream, it can result in a conflicted sector.  In this case,
discard the sector.
2022-02-25 21:59:18 -08:00
David Given
1d7a75c7b3 Okay, the visualiser looks pretty much done. 2022-02-26 00:23:17 +01:00
David Given
65584a953d Merge pull request #473 from hharte/fix-fluxmap-split
fluxmap: Don't push_back() if Fluxmap begins with F_DESYNC.
2022-02-25 11:15:31 +00:00
Howard M. Harte
4cbd19d2e5 fluxmap: Don't push_back() if Fluxmap begins with F_DESYNC.
Fluxmap::split() creates a 0-length Fluxmap if the Fluxmap
begins with F_DESYNC.  Fix this by not doing push_back()
if a F_DESYNC is encountered at the start of the Fluxmap.
2022-02-24 19:07:09 -08:00
David Given
a59b59fea4 First sector visualisation! Doesn't look bad. 2022-02-25 01:31:10 +01:00
David Given
5c063a9de3 Replumb the visualiser data flow... again. I think I might have it right this
time.
2022-02-25 00:36:12 +01:00
David Given
3666a7d7bd Merge. 2022-02-24 23:52:18 +01:00
David Given
8250112c7f Merge pull request #468 from JohnVeness/JohnVeness-fix-docs
Fix various doc typos
2022-02-24 22:16:48 +00:00
David Given
30957f4105 Merge pull request #472 from davidgiven/proto
Make the internal disk data structures all const.
2022-02-24 22:15:58 +00:00
David Given
eade2e279e Make the internal disk data structures all const, to allow us to pass them to
the GUI UI thread safely.
2022-02-24 22:46:10 +01:00
Jeff Epler
b4489b9402 Add support for PDP-11 RX-50 disks
According to my source [https://www.cbmstuff.com/forum/showthread.php?tid=634] the format of RX-50 is

 * single sided
 * 80 tracks
 * 10 sectors per track
 * 96 tpi (tracks per inch)
 * 300 rpm (revolutions per minute)
 * 250 KHz data rate

I have a disk labeled
```
BL-T540E-MC
CZUFDE0 MICRO PDP-11
USER TESTS
© 1983, 1894
DIGITAL EQUIPMENT CORP.
```
and stamped 14131.

The image read all sectors and the content looks plausible.  `strings` on it says things like
```
$ strings rx50.img  | grep -i pdp
; This file implements the USER FRIENDLY Diagnostic for the MICRO PDP11 & 11/73
```
however, I don't have an emulator or other system to use the disk image with so
I can't 100% vouch for the image being complete and correct.
2022-02-23 17:24:05 -06:00
David Given
a67b7c80c1 Rework the visualiser to look better, maybe? Also fiddle with the logger
somewhat. There's a pending problem where it's not safe to send mutable objects
through the logger to the visualiser, which will need work.
2022-02-23 23:50:29 +01:00
David Given
dfc0cdd0fa Merge from master. 2022-02-23 20:43:19 +01:00
John Veness
d6faf5b074 Change to consistent "-sided" 2022-02-23 11:05:57 +00:00
John Veness
44ffa6a3b0 Change to consistent "-sided" 2022-02-23 10:58:13 +00:00
John Veness
168b78d9d7 Change to consistent "-sided" 2022-02-23 10:57:17 +00:00
John Veness
bd8f313ccb Change to consistent "-sided" 2022-02-23 10:56:36 +00:00
David Given
4a0fc3d566 Merge pull request #469 from hharte/fix-warnings
Fix override warnings in decoders.
2022-02-23 10:53:15 +00:00
Howard M. Harte
8d04d17e39 Fix override warnings in decoders. 2022-02-22 22:45:39 -08:00