Closed maehw closed 1 month ago
Thanks, I'll take a look at those but not necessarily immediately.
The graphics character one should probably be controlled by an option: leave it with me. I'm a little uncomfortable with having it in the output stream by default since it implies either UTF-8 or some other multibyte Unicode, which would be a PITA if somebody wanted to postprocess it for some reason... debugging output is a different matter. I'll check precisely what I did and why I did it: memory is shaky after four years :-)
Those "uninitialised variable" warnings are (arguably) a compiler/library bug: there's various places where procedures/functions in the standard library are incorrectly declared with a "var" parameter when it should be "out". Some of the notes etc. can- of course- be trivially fixed, others can be hidden by a directive (which the Lazarus IDE can insert semi-automatically) to tell the compiler to not report them. However I'm reluctant to hide the library's shortcomings like that :-)
In possibly the longer term, I'll try to take a look at that format extension, but obviously a lot depends on being able to find info. I'll try to remember to ask about that on the EEVBlog forum.
Mark
Hi Mark,
thanks for your fast and detailed reply.
Sure, no rush!
Thank you very much for your time to support me in getting your tool running and for adding all the background information. — Very appreciated!
Mäh
Ah yes... midlevelio.pas shows that Dot is in there as a placeholder for ASCII control characters and to mark the middle of a run of hex, and I've specifically made the actual expansion conditional on compiler version.
Late stages of FPC v2 were around for a long time, since the core team were struggling with extra targets, OSes and so on. But Unicode support was patchy...
Anyway, right now I need to get back to the ADS-B stuff related (although not derived from) the other project in my repo.
Mark
I've finally got around to reconciling your changes with my local copy. I've made the dot/space vs 1/0 selection configurable (by a compiler pragma), since if a user is trying to print the file dump and for some reason can't do so in a monospaced character set digits will always have the same width while other characters probably won't.
Hi Mark,
thanks for the time and effort you took to review and communicate. It's really appreciated. Cool, that my changes could me merged.
Mäh
Thanks for using and appreciating the program. I'll try to take a look at those newer formats at some point, but I'm only just coming down off the ceiling after a frantic Summer working on some seasonal stuff (certain test data is only available in dryish weather).
I think the zero-one business does highlight one thing: think carefully before outputting Unicode that might possibly be post-processed, or where a user might possibly try to print it and have character-width problems.
Mark
Hi @MarkMLl ,
thanks for your help in #1 !
The
pesdump
tool now both compiles and works!I directly tried to contribute something back and so I created this pull request.
I made the following changes:
.gitignore
file that lists*.ppu
and*.o
files and the name of the compiled executablepesdump
- this prevents committing those artifacts (I almost did commit them accidentially)1
and0
in the bitmap thumbnail output by the middle dot you've already been using·
and a simple space characterwarningsnotes during compilation. (Details below.)Thanks for your tool and the time you've put into it! It really seems helpful!
I am totally OK if you don't want to merge all or any of those changes as they might not add big value to the project or even break things (thinking of post-processing those thumbnail previews).
Details about the thumbnails:
I've tried to get some free PES sample files to play around. Interestingly, Brother themselves provide some here: https://sewingcraft.brother.eu/en/inspiration-and-events/projects-and-free-patterns
Even more interesting: the newer files from 2024 seem to use newer file versions (seen
0080
in the "Paw Print" and even0100
in the "Easter bunny"). So this file format still needs to be extended with new features - I am surprised! Going further down the list, the "Magic mushrooms" (file nameEmbroidery202401pes.pes
) is the first one that uses an older version (0001
) and that worked with your tool.From the (modified) preview in "dot-space" style:
The same file in "ones-zeros" style:
Warnings+notes from
fpc
after my changes:Warnings+notes from
fpc
after my changes:(I didn't really dare to touch
backtrack
as this seems to be used for debugging...)