The original should be jpeg with a high quality setting just for the front & back cover, and then lossless lzw for all the rest.

The original document is the pdf, everything else like jp2.zip is junk generated by archive.org

It does bug me that they do that without making it clear what the actual source artifact is. The site is called "archive". It's fine to generate renditions from the original but it's unforgivable to fail to identify the original artifact very clearly as distinct from all the rest.

I mean they even technically lie. When you poke around the fine print to try to find out what is the original, they do have a link that says "[down] 6 original" and links to a zip with 6 files in it.

There is no 6 original. There is exactly 1 single original file.
At least it is one of the files in the zip.

If you just click on Show All, the original 2.4g pdf is in there with the rest, but how could you tell which is the source of all the rest except by maybe looking at the timestamps? You can't go by the filesize. Sometimes the generated files are larger than the original.

On the main page, the link that says PDF without text also downloads the original, but again you have no way to know that that is the source of all the rest from the ui.

Anyway as to compression, I might actually rescan the whole thing on my other scanner just for consistency with some others I'm going to scan, and using software that gives more control or knowledge over exactly what's happening. I don't even know exactly what bit depth either the color or grayscale pages are.

I usually use gscan2pdf but for whatever reason lately it's producing only low quality jpeg-like scans, right from the scanner before trying to save in any particular format. (from my regular hp laser printer on the lan. when I bust out the Avision that will be a different scanner driver and different interface so probably different behavior, also gscan2pdf has configurable back-ends that do the actual scanning so there is probably something I need to do there) But "Document Scanner" was working fine so I just used it even though it only has super basic controls. I saved as full fat png from Document Scanner and then reopened in gscan2pdf to crop & adjust contrast & save the different parts with the different compressions, then used PDF Arranger to combine the covers & body into a single pdf file.

I agree on all counts wrt removing the blank pages. I don't like them in there in a functional daily driver copy, but I guess it's silly. The fuss it causes is worse, having the missing numbers look like missing pages, and making it so the index has to be custom edited.

Then again, that's why there is an unadulterated reference original, that frees up other more convenient working versions to have other opinions and focus. And since I did edit the index, the page numbers agree across versions from a user point of view.

I will add your index to the original reference scan.

--
bkw


On 7/19/26 19:38, B 9 wrote:
Neat! I am not sure that we actually duplicated much work at all. We each have done things the other is missing.

I didn't clean up the pages at all, leaving all the black circles on the side from the spiral binding, whereas your PDF looks more like the original by omitting those scanning artifacts.  For the sidebar outline I had based it on the verbatim table of contents printed in the manual (plus the BASIC commands), but your bookmarks properly include the front cover and make the chapter headings clickable.

One difference that may not be the best idea is that you seem to have removed all the blank pages. That changes the internal page numbering, making it incompatible with both the original scan and with any work I do. For example, to make the table of contents page clickable in the original 2GB scan, one could simply reuse my annotations (outlined in red here to make them visible):

cpdf -list-annotations-json TRS-80_Model_100_Portable_Computer-jbig2.pdf > b9-annot.json cpdf -set-annotations b9-annot.json TRS-80_Model_100_Portable_Computer.pdf -o output.pdf

b9.gif
But, if one tried that on the PDF in https://github.com/bkw777/m100_dev/ tree/main/platforms/100 <https://github.com/bkw777/m100_dev/tree/main/ platforms/100>, you'd get this instead:
bkw.gif
(Also notice that the page number jumps from 3 to 5 which had made me wonder if the scan had accidentally omitted page 4).

Removing those pages not only affects hyperlink annotations, which perhaps are just a frill, but it'd also make your version unable to easily import any improvements I make to the bookmarks outline or to the optical character recognition. For instance, with the outline, I was thinking it would be nice if the links scrolled to the part of the page where each BASIC command is instead of just going to the top of the page, although I'm not sure how to do that, yet. Being able to cross- pollinate any OCR improvements may be even more important as finding words in the manual (Ctrl+F) is not 100% reliable. I know how to fix the OCR text <https://www.youtube.com/watch?v=aWDiq3t1EeA>, but it is tedious work.

I'm not sure of the reason to omit the blank pages. Is it an optimization to look better on phones? Personally, I prefer reading the old manuals on screens large enough to show a two-page layout, as the book was originally intended to be viewed.

By the way, I think the smallest file size and best readability is going to come from getting the OCR corrected and saving it as an ebook: The text would be simply fonts and the images, images. Here's an example I made of the two pages which make up the Table of Contents:

  * Original scan of pages iii and iv: over 5 MB
  * Compressed with JBIG2: 266 KB <https://github.com/hackerb9/
    m100manual/raw/main/examples/toc.pdf>
  * Saved as an ebook: 23 K <https://github.com/hackerb9/m100manual/raw/
    main/examples/toc-ebook.pdf>

Of course, there are no figures on those pages so take that compression ratio with a grain of salt. However, I think the ebook could include better quality, less compressed images since we've already saved so many bytes by not including a bitmap of the text.

—b9

P.S. Brian: It looks like the original scan <https:// ia801606.us.archive.org/view_archive.php?archive=/8/items/trs-80- model-100-portable-computer-owners-manual/ TRS-80_Model_100_Portable_Computer_jp2.zip> on archive.org <http:// archive.org> uses lossy compression. Is that correct?



On Sun, Jul 19, 2026 at 9:58 AM Brian White <[email protected] <mailto:[email protected]>> wrote:

    Very cool. I did take your cpdf directions and outline.txt and did
    the same to a 60m lzw version.

    https://github.com/bkw777/m100_dev/tree/main/platforms/100 <https://
    github.com/bkw777/m100_dev/tree/main/platforms/100>

    The script to reproduce it is in pdf_edit, nothing organized, just
    wanted to get it saved along side the pdf in any form initially.

    I'll be doing the service manual and tech reference soon and
    probably do the same thing to all going forward. I just scored a 102
    service manual too.

    I apologize for mostly duplicating work, but I really wanted it with
    the background cleaned to white and no jpeg or jbig. But maybe with
    high dpi and high quality level the jbig is ok. I was going to try
    jbig without lat on my manually cleaned & contrasted version and see
    if that maybe produces a much smaller file that still looks good,
    because it will start from something that has already been reduced
    to mostly almost 1bpp instead of the low contrast original in a
    single step. So the final appearance should just be a matter of
    dialing the quality level until I like it.

    Anyway it's already sooo nice just having that clickable index.
    Thank you for putting that together.

-- bkw

    On Sun, Jul 19, 2026, 11:07 AM B 9 <[email protected]
    <mailto:[email protected]>> wrote:

        I figured out how to hyperlink the scanned Table of Contents. I
        wrote a program, hocrtoc.py <https://github.com/hackerb9/
        m100manual/blob/main/hocrtoc.py> to automatically convert OCR’d
        lines into links. (I had thought something like this must
        already exist, but I couldn’t find it and ended up needing to
        read the PDF specification.) You can download my latest version
        from:

        |https://github.com/hackerb9/m100manual/raw/main/
        TRS-80_Model_100_Portable_Computer-jbig2.pdf <https://
        github.com/hackerb9/m100manual/raw/main/
        TRS-80_Model_100_Portable_Computer-jbig2.pdf> |

        So, now my edition has these differences from Brian’s master copy:

          * JBIG2 images for much smaller file size, but lower quality
            images.
          * Correct metadata.
          * Correct page labels so that the PDF page numbers correspond
            to what the book says.
          * An outline so that one can move through the document quickly
            from the toolbar.
          * Annotations on the Table of Contents page so that all
            entries are hyperlinks.

        Brian: All my changes, except the JBIG2 compression, should be
        easily copyable into your archival version using the |cpdf|
        command.

        Things that are still lacking and that I may yet do, time
        permitting:

         1. Add a note on one of the blank inner pages saying something
            like, “This PDF file has lower quality images to keep the
            file size reasonable. For the original scan that this is
            derived from please see https://archive.org/details/trs-80-
            model-100-portable-computer-owners-manual/” <https://
            archive.org/details/trs-80-model-100-portable-computer-
            owners-manual/”>
         2. Try hocrtoc on the scanned Index pages at the end of the
            book to see if they can be converted into hyperlinks.
         3. Use ScribeOCR.com to make sure the transcription is
            completely correct and create an e-book version.
         4. Fix up hocrtoc so it can be used for other retro-computing
            manuals.
         5. Once I’m done improving it, stash a backup of the JBIG2
            version on archive.org <http://archive.org>.

        —b9


        On Fri, Jul 17, 2026 at 5:19 AM Brian K. White
        <[email protected] <mailto:[email protected]>> wrote:

            This is awesome, thank you!
-- bkw


            On 7/17/26 07:52, B 9 wrote:
             > Thanks for the encouragement!
             >
             > I’ve learned how to add a PDF document outline and
            created an updated
             > file with an index on the sidebar <https://
            gist.github.com/ <https://gist.github.com/>
             > hackerb9/4b993d3e204a0eb0e46859a276b22fee/raw/
             > TRS-80_Model_100_Portable_Computer-jbig2.pdf>.
             >
             > It took a while to type in the outline and page numbers
            by hand,
             > particularly since I added an entry for every BASIC
            command. I figured
             > if I do it right, no one will have to go through this
            tedium again. The
             > outline is structured as a text file (outline.txt <https://
             > gist.github.com/
            hackerb9/4b993d3e204a0eb0e46859a276b22fee/raw/w- <http://
            gist.github.com/hackerb9/4b993d3e204a0eb0e46859a276b22fee/
            raw/w->
             > outline.txt>) which can be added to the PDF by using |
            cpdf -add-
             > bookmarks outline.txt in.pdf -o out.pdf|. (I don’t know
            why cpdf
             > <https://www.coherentpdf.com/ <https://
            www.coherentpdf.com/>> calls the outline “bookmarks”.)
             >
             > I still haven’t gotten hyperlinks for the actual
            text figured out, but I
             > noticed cpdf can create a clickable Table of Contents
            from the outline
             > and add it to the beginning of the document. I think it
            looks a bit ugly
             > and may not be so useful since the outline shows on the
            sidebar anyhow,
             > but see this version with a generated TOC <https://
            gist.github.com/ <https://gist.github.com/>
             > hackerb9/4b993d3e204a0eb0e46859a276b22fee/raw/
             > TRS-80_Model_100_Portable_Computer-jbig2+toc.pdf> for
            yourself and let
             > me know if it's useful or not.
             >
             > —b9
             >
             >
             > On Thu, Jul 16, 2026 at 9:41 AM Joshua O'Keefe
            <[email protected] <mailto:[email protected]>
             > <mailto:[email protected]
            <mailto:[email protected]>>> wrote:
             >
             >>     On Jul 16, 2026, at 8:56 AM, B 9 <[email protected]
            <mailto:[email protected]>
             >>     <mailto:[email protected]
            <mailto:[email protected]>>> wrote:
             >>
             >>     I’ve created amuch smaller version of the PDF <https://
             >> gist.github.com/
            hackerb9/4b993d3e204a0eb0e46859a276b22fee/ <http://
            gist.github.com/hackerb9/4b993d3e204a0eb0e46859a276b22fee/>
             >>     raw/59f26ba22962e78005fee4ee18fec42bdab570e0/
             >>     TRS-80_Model_100_Portable_Computer-jbig2.pdf>(40 MB
            instead of 2
             >>     GB) by using JBIG2 symbol compression.
             >
             >     Within the limits of what jbig2 can do, this is a
            delightful
             >     tradeoff of readability for size. Great work! As a
            daily driver
             >     version of the manual it seems far more than adequate
            given that
             >     it's about the size of a baby's pinky nail.
             >
             >     I'd love to see all the variants people are working
            on consolidated
             >     into a single collection once the dust settles. No
            doubt those who
             >     come after us would benefit from scrounging all over
            the internet
             >     hunting down which copy is which, or losing track of
            the reference
             >     scan. We already run into this problem today with
            slightly divergent
             >     copies of the same document becoming "welp, that's
            all we've got."
             >
             >     Thanks for offering this up!
             >


-- bkw



--
bkw

Reply via email to