jagregory / abrash-black-book Goto Github PK
View Code? Open in Web Editor NEWMarkdown source for Michael Abrash's Graphics Programming Black Book
Markdown source for Michael Abrash's Graphics Programming Black Book
After gitcloning your project, I ran make epub
and started to run into problems. Bash spit out the error pandoc: src/src/images/69-02.jpg: openBinaryFile: does not exist (No such file or directory)
. I looked at the markdown source and didn't find any errors, the image 69-02.jpg was referenced the same way as the other pictures. I eventually created a src
directory within the original src
directory and copied the images
directory into it. This allowed me to create the book with pandoc, but is a bit of a hack.
Great Work your job.
And I want to use your model to generate my own book in PDF,
Could you give some suggestions?
Thank you.
The cover page on my Kobo reader shows it zoomed in, rather than showing the whole cover.
The readme has two links to http://www.drdobbs.com/parallel/graphics-programming-black-book/184404919 that no longer work. The link redirects to http://www.drdobbs.com/.
I think --
gets merged to whatever that long hyphen character is called, which leads to reading code incorrectly, for example in chapter 17 I think while (—init_length)
should be while (—init_length)
...which is github doing exactly what I said. In the latter case it should read
--
init_length
There are some instances of "µs" that should be "ms" instead, in the "Dynamic RAM Refresh: The Invisible Hand" section.
All of the PC’s system memory consists of DRAM chips. Each DRAM chip in the PC must be completely refreshed about once every four milliseconds in order to ensure the integrity of the data it stores. Obviously, it’s highly desirable that the memory in the PC retain the correct data indefinitely, so each DRAM chip in the PC must always be refreshed within 4 µs of the last refresh. Since there’s no guarantee that a given program will access each and every DRAM block once every 4 µs, the PC contains special circuitry and programming for providing DRAM refresh.
The two "4µs" instances should be ms, and also on the next section:
The 256 addresses accessed by the refresh DMA accesses are arranged so that taken together they properly refresh all the memory in the PC. By accessing one of the 256 addresses every 15.08 µs, all of the PC’s DRAM is refreshed in 256 x 15.08 µs, or 3.86 µs, which is just about the desired 4 µs time I mentioned earlier. (Only the first 640K of memory is refreshed in the PC; video adapters and other adapters above 640K containing memory that requires refreshing must provide their own DRAM refresh in pre-AT systems.)
The "3.86 µs" and the "4µs" right after should also be ms.
I have confirmed that the original PDFs (linked on this project's main page) have the correct units.
I apologize if this is not the proper way to report this issue, but it is my first time doing so.
Thank you for your effort, by the way -- certainly more enjoyable than going through the chapter-by-chapter PDFs.
EDIT:
Found a few similar issues on the same chapter, in the "The Impact of the Display Adapter Cycle-Eater" section.
Even on the EGA and VGA, the effect of the display adapter cycle-eater depends on the display mode selected. In text mode, the display adapter cycle-eater is rarely a major factor. It’s not that the cycle-eater isn’t present; however, a mere 4,000 bytes control the entire text mode display, and even with the display adapter cycle-eater it just doesn’t take that long to manipulate 4,000 bytes. Even if the display adapter cycle-eater were to cause the 8088 to take as much as 5µs per display memory access—more than five times normal—it would still take only 4,000x 2x 5µs, or 40 µs
The "40µs" should be ms, and also:
For example, if we assume the same 5 µs per display memory access for the EGA’s high-resolution graphics mode that we assumed for text mode, it would take 26,000 x 2 x 5 µs, or 260 µs
Same thing for the "260 µs".
This is a HTML output issue, the OL for Part 2 needs to start at 23. Not sure how to do this with pandoc.
Hi,
I was wondering what kind of license does Graphics Programming Black Book has now?
Can one have it printed for oneself and colleagues at work (no general public)?
Thanks.
Attempting to build the HTML or EPUB versions of the book fails with the following error:
--smart/-S has been removed. Use +smart or -smart extension instead.
For example: pandoc -f markdown+smart -t markdown-smart.
Try pandoc --help for more information.
I am currently using Pandoc 2.2.3.2 and it appears that Pandoc 2.0 made some changes to its command-line interface. The same issue was seen in rmarkdown issue #1120.
When converting a pandoc generated epub to mobi using kindlegen, the font sizes aren't carried across. This causes issues for reading the code samples.
Didn't know how else to contact Michael. We have a reconstructed Zen of Assembly Language PDF created mostly from files on the old CD. We have redrawn the images and filled in the missing parts. The listings are hyperlinked so that one can go back and forth while reading the book. We created the PDF by first converting the RTF files on the disk to Microsoft Word 2007 DOCX. Many hours were spent on this project. Just wondering if you are interested in reviewing it. Our email is [email protected].
R W
Thanks for your work on this project.
Using text-to-speech on assembly language listings is an excruciating experience!
I'm reading the epub version in iBooks on iOS, my system language is set to German, and I sometimes use the screen reader in addition to just reading on-screen. Most parts of the book are properly screen-read using an English voice, but some parts are read using a German voice (not sure if that's because of my system's language, or because it auto-detects parts as German).
I assume a lot here, but maybe my problem can be fixed by specifying the language (English) in the epub file explicitly so that screen readers (possibly -- might be a software defect with iBooks and nothing to do with the book itself) read everything as English?
Here's some links I've found:
https://www.mobileread.com/forums/showthread.php?t=87928
https://gist.github.com/labocho/1009210
I also noticed that content.opf
has this set: <dc:language>en-AU</dc:language>
, but maybe just setting lang="en"
in the <html>
tags of each chapter helps?
https://stackoverflow.com/questions/1071789/how-to-specify-language-of-website-html
I'm new to x86 assembly and I'm trying to get this working on a modern x86 processor using Visual Studio 2017. However, copying in the .asm files gives several errors.
The listings in chapter 1 don't seem to be right because listing 1.3 has a line where it says "_ChecksumFile proc near" and in listing 1.7 it says "_ChecksumChunkprocnear". I think there are multiple places where whitespaces have been messed up? For example, isn't it supposed to be "_ChecksumFile endp" and not "_ChecksumFileendp"?
This version is missing the extra chapters that were included on the CD that came with the book.
It'd be cool if there was a github pages version of the book generated automatically.
Image 13-01.jpg is too low resolution to be readable.
This may have been captured at too low a resolution.
Or it's from the chapters on the Life game.
Typos in chapter (256*15.08 microseconds = 3.86 microseconds?!) result in a poor user experience. I'm going back to the PDFs. They are better formatted anyways. I never thought I'd say that about a PDF.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.