24

Michael Abrash's book Zen of Assembly Language: Volume I (1989) contains a reference to a column in a computer magazine, though the actual source is not cited.

From the text:

I recall a debate in the letters column of one computer magazine about exactly how quickly text can be drawn on a Color/Graphics Adapter screen without causing snow. The letter writers counted every cycle in their timing loops, just as the author in the story that started this chapter had. Like that author, the letter writers had failed to take the prefetch queue into account.

The question is, does anyone know the magazine, column or issue he might have been referring to, and also is that archived anywhere online?

5
  • 3
    I'm not familiar with this reference or article specifically but Byte Magazine or Dr. Dobbs Journal are two that come to mind.
    – jwh20
    Sep 7, 2022 at 17:17
  • 3
    There's an article in PC Magazine, Oct 13, 1987, titled "Fast Screen Writing in BASIC, Part 1" by Ethan Winer, which talks about the snow issue but does NOT count cycles. archive.org/details/PC-Mag-1987-10-13/page/388/mode/2up Sep 7, 2022 at 17:36
  • 2
    The Acknowledgments in the book mention several publications: PC Tech Journal, Creative Computing, Programmer’s Journal and Dr. Dobb’s Journal.
    – HABO
    Sep 7, 2022 at 21:17
  • 1
    That's also when (though strictly speaking the 80486 was starting production in 1988) the 80486 (16-byte prefetch) was out. There was an 80386 (16-byte in early steppings, kicked down to 12-byte after bugs found) before it and an 80286 (PC/AT, 6-byte I believe) before that and the venerable 8088/188 (4 byte prefetch) before that. (The 8086/186 had a 6-byte prefetch.) I've some 30 yr old software from Bob Collins that can determine the prefetch size of whatever it runs on, still laying about. Reading it may help, but it's self-modifying code and doesn't time itself. Why are you asking this?
    – jonk
    Sep 8, 2022 at 5:07
  • @jonk the reason is I was reading through the book and that got me curious because I was recently working on this same thing in my BIOS project. I was very interested to read Abrash's take on it and see if there's any wisdom I could use from it. That and it just seemed like something that would be great to resurface before it gets too lost to history!
    – 640KB
    Sep 8, 2022 at 13:11

1 Answer 1

32

The discussion started with an article by Augie Hansen, Instant Screens, in the June 1986 issue of PC Tech Journal. That article describes the snow problem in detail, and presents a technique to avoid snow while still allowing fast (“instant”) screen updates by tracking horizontal and vertical refreshes, and flipping pages.

A number of readers wrote in with comments, corrections etc. in the October 1986 issue, including one who counted microseconds and suggests a few improvements to reduce the execution time (and takes prefetch into account at least in one scenario). However, as Augie Hansen’s response to the letters indicates, it seems the reader counting microseconds didn’t actually test the suggestions, and they don’t all work!

In between those issues, Abrash himself published a snow-ignoring and flicker-free scroller for dual-ported cards in the September 1986 issue.

2
  • You saved me a lot of work, Stephen, I was all set to come home and trawl through my digital copies of BYTE and DDJ :-) Good find.
    – paxdiablo
    Sep 9, 2022 at 12:17
  • 3
    @paxdiablo pdfgrep works wonders for me ;-) Sep 9, 2022 at 12:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .