The question "what is DMA and how does it work?" is currently on hold as off-topic, showing that at least five RCSE users believe that it is. Is it really off-topic? If so, why?

In particular, what clauses (both pro and against) of our topics list apply here? What are other questions which might appear to be off-topic for similar reasons, and what is different about them that they should they not also be closed? (Or should they also be closed?)

While those writing answers should feel free to expand into a more general view of why and how questions are appropriate, please make sure you also state whether or not you believe that RCSE would be better off without this particular question and why.

5 Answers 5


To add to the answer by @RETRAC, which covers precisely why I considered the DMA question to be off-topic...

Most SE sites have a requirement that the questioner has attempted to understand the topic. Indeed some have the specific close reason "Shows no research effort".

Questions like "What is DMA?" and the hypothetical "What is BCD?" show no attempt at prior research. You might as well allow questions like "What is ASCII?" or "What is binary?".

Questions regarding how DMA was implemented in retro systems would be on-topic.

  • Drats. "Shows no research effort" - that was exactly the phrase I was looking for while posting my 2c. Thaks for pointing that out again.
    – Raffzahn
    Oct 25, 2019 at 12:07

Knowing what DMA is is important for dealing with the hardware of machines using it (in most non-trivial ways). Therefore, this information is important in a retrocomputing context, and therefore on-topic.

We won't be inundated with such questions, since they can only be asked once and any more specific questions would have to be about the technology in a more specific retrocomputing context.


In regards to other questions, let me proposed some hypothetical ones.

  • What is modified frequency modulation and how does it work?
  • What is binary-coded decimal and how does it work?

These often come up in a retrocomputing context, more often than do today. But both are still in use.

Now, if the question is more specific with a retrocomputing angle, like "Why was BCD more popular before the 1980s?" then I'd say it should stand. But otherwise, it's a rather general question about digital electronics or software engineering, and should be considered off-topic.

  • 1
    FWIW, if the questions are inspired by retrocomputing devices, they seem to me to be absolutely on topic. Just as the DMA question started, "I've heard the term 'DMA' being used a lot in reference to older consoles," yours might be rewritten, "Older disk used something called 'MFM'; what is this?" and "The 6502 and other microprocessors support 'BCD'; what is this?" The former is even more relevant than DMA, since MFM encoding on magnetic media has been of only historical interest for decades now. Does this change your feeling on the questions?
    – cjs
    Oct 25, 2019 at 7:48
  • 1
    I fear that almost every topic in computer science and electronics could become on-topic that way. There's not that big a gap between "I've heard that the 6502 supported BCD, what is that?" and "I've heard that the 6502 supported Boolean operations. What are those?" A question like "Why did processors in the 1970s include hardware support for BCD arithmetic?" (I can't find it right now but I've seen that question here) would be on-topic since it specifically addresses historical computing. The more general question doesn't really.
    – RETRAC
    Oct 25, 2019 at 8:29
  • 3
    It's true that, if you're going to insist on drawing a hard line that includes such questions, it does lead towards "everything" being on topic. But do we need to draw such a hard line and absolutely allow everything on one side of it, and absolutely disallow everything on the other? What's the disadvantage of, just for the moment, accepting questions that fall into a large grey area, knowing that we can change this policy later if larger problems arise? (Related: I've also added a note on question volume to my answer.)
    – cjs
    Oct 25, 2019 at 9:21
  • Actually, I've realized that you don't clearly state that you think RCSE would be better without this particular question on it. I've updated my question to ask for that; perhaps you could update your answer to make this clear?
    – cjs
    Oct 25, 2019 at 11:57

[Conflict of interest statement: My answer to the question has currently earned five upvotes and been accepted, earning me 65 reputation. To try to mitigate this, I've changed it to a community wiki answer so I earn no further reputation from it.]

Similiar to others, my initial instinct was that this is a generic computing question and is off-topic, though I wasn't fully certain of this. (I submitted a brief answer anyway because I couldn't think of an obviously better home for the question and felt that the OP, at least, would find the answer useful.)

On further reflection, I've changed my mind and believe that this is an appropriate question, due to the combination of two reasons (neither of which would be enough standing alone):

  1. DMA was clearly an important technique for early microprocessors such as the 8080, 6800 and 6502, and the systems based on them. The designers of all three, and many other microprocessors and systems of the era, felt again and again that the not-insignificant cost of supporting DMA was worthwhile.

  2. It's both reasonable and expected that people familiar with some aspects of retrocomputing would not be familiar with "machine-level" techniques such as DMA; it's not something that is even visible to users and developers working in "higher-level" languages such as BASIC.

The combination of these makes it plausible that someone first hears about DMA in a retrocomputing context and is unaware that this is a general technique applying to all computers, and not something specific to early microprocessor systems.

This leaves us in a position where the question could be seen to be about a general technique, rather than specific to retrocoputing, only by someone who already has the requisite knowledge not to require an answer to the question.

That, to my mind, makes this a reasonable question to have and have answered on RCSE, falling exactly under the "hardware, including peripherals" section of of our topic list.

Similar Questions

None of the following questions have attracted any close votes, as far as I can tell. (And I personally agree that most of them are "on-topic enough" for RCSE.)

"When did computers stop checking memory on boot?" is a good example of the same situation as the DMA question: the highly-upvoted (45 votes) and accepted answer for this one is "never." The OP simply didn't know that memory tests on boot were not a retrocomputing thing (in fact, until the IBM PC most microcomputers didn't do a memory test on boot), but a generic thing.

"Z80 CPU address lines not stable" seems to have some similar characteristics; though the Z80 is an old architecture, the question itself deals with a modern chip still in production and being used in new designs, with a clear alternative site described in topics

"Are there any old and nowadays active Operating Systems which has only BASIC Programming Language?" is a bit vague, but it's clear that at last some acceptable (i.e., upvoted more than just a couple of times) answers are about modern (21st century) systems, such as the ones mentioning RISC OS Pico on the Raspberry PI, the ESP32 microcontroller, and the Parallax Basic Stamp.

"Real mode flat model" is clearly applicable to current i386 CPUs, rather than being specific to older ones (though it's not clear if the OP understands this), and in fact the book from which the OP is working and the question derives, Assembly Language Step-by-Step: Programming with Linux, was published in 2009. I'd argue that this is much more clearly off-topic than than any of the other questions here, and really belongs on StackOverflow.

Question Volume

A common fear seems to be that, if we are too open with what questions we allow, we'll be inundated with off-topic questions. I think that's in no way an issue and we'll have plenty of warning if it should start to be an issue.

We've seen about 40 questions so far this month, about 1.6 per day. Of these and excluding the question under discussion, three have been put on hold or closed: one as opinion-based, one as too broad, and one as off-topic. Our lifetime average is [1.1 questions per day][area51].

For what it's worth (not too much), StackExchange considers (or did consider) ten per day to be "a healthy beta" and five per day as "needs work."

I certainly wouldn't suggest we get too broad as far as what we accept (and that we are closing some questions indicates that people are keeping an eye on this), but these stats do suggest to me that, when there's doubt about how on-topic a question is, we are at this moment in time probably better off to take the question than to reject it.

¹ "Questions about modern, currently supported computers are off-topic" and "Questions about electronics are off-topic unless they are confined to dedicated examples of existing circuitry of an existing and on-topic computer."

  • 1
    I think it's technically off topic but I voted to re-open the question for a couple of reasons. 1. DMA techniques for early microprocessors are an important topic for early microprocessors since their support for it was primitive at best. 2. It's not like the site is swamped with new questions. 3. One of the people voting to close it also posted an answer, gaining 3 upvotes (so far). That seems a bit inconsistent to me.
    – JeremyP
    Oct 25, 2019 at 7:36
  • @JeremyP Well. 1 Already the very early CPUs had bus sharing implemented (8080, Z80, SC/MP, 2650, etc.) that was anything but primitive. 2) Are we that desparate that we take any question, as remote related as it might be then why not some the Kardashians and C64? 3) (Please use my name if you're referring to my posting) Isn't that clearly marked as not an answer? Getting 3 votes on there seams to show that people do think it's a valueable addition, doesn't it?
    – Raffzahn
    Oct 25, 2019 at 9:43
  • @Raffzahn " Isn't that clearly marked as not an answer?" It clearly is an answer. You posted in the box that says "answer" and it actually wasn't a bad answer which is why I didn't downvote it. Had it just been a long comment in the answer box, you'd have had -2 from me.
    – JeremyP
    Oct 25, 2019 at 11:20
  • @JeremyP The system is restricted in what can be done, that's why the specifier has been added. Great that you liked the DMA related part, just lets be serious, if I had intended that as a serious answer, It would be simply too short. Out of couriosity, how to vote -2?
    – Raffzahn
    Oct 25, 2019 at 12:17
  • Just a quick correction - Assembly Language Step by Step 3rd ed. was published in 2009 (I thouht it was longer ago than that, but the author's web site confirms the date - I got my copy as a prerelease during the publication process so that may be why I remember it being older than that).
    – occipita
    Jul 4, 2020 at 11:36

(Not sure if I got everything, but tried)

The question "what is DMA and how does it work?" is currently on hold as off-topic, showing that at least five RCSE users believe that it is. Is it really off-topic?


If so, why?

It carries not one but two marks to make it of-topic (but SE UI lets only select one).

  • It's a generic term, not specific to retro computing. As such it is per se not for RC.SE. To make it on-topic, it would need specific ties to explicite classic technologies and/or implementations (aka machines).

  • The "how does it work" in conjunction with such a generic term makes it automatic way to broad to fit the format either.

(Chenmunka just added an important further part her: "Shows no research effort" - it tackles this from another, more generic angle. I was somehow searching for this term the whole time I wrote this post. Thank you)

In particular, what clauses (both pro and against) of our topics list apply here?

No need to look up any list, as it can be done by common sense.

  • If a question does ask about something that is generic, and not retro specific, it needs to be qualified in its retro aspect.

This can as well be supported from an opposite (answer related) angle as

  • If a concrete (i.e. close tied to whats asked) answer can be given that answers the question in whole while staying specific (!), then the question may not be too generic.

Mind you, the last proof is not an exclusive, but complementary to the first - also neither removes the basic requirement to judge reasonable.

For example asking "I've heard that the NES uses 'DMA', what is this?" would still be a less than desirable question, but tied enough to a specific RC item to make a valid one. It can be answered with a single line about DMA in general (bus sharing between different masters) and then explain what DMA in case of the NES means.

This brings up another important aspect when judging Questions:

Does it (and its answer) benefit future readers in an RC related sense?

IMHO this is the second most important rule for a question - right after the primary one of an answer solving the issue the OP puts up.

Generic questions that are not RC specific do neither a good for the OP nor RC.SE. This isn't the place to write a whole world encyclopedia. They are best answered by looking at common sources (like Wikipedia) - which is IIRC even requested to be done before writing a question, isn't it?

In the mentioned case, the answer would either be just a sentence, thus not really satisfying, merely pointing to wholesome sources, or a way over the edge treatise covering DMA from mainframes of the 1960s all the way to todays PCIe bus implementation. If one intends to spend that time, I seriously suggest doing so in the Wikipedia, as it would be of way more benefit to everyone. He could even start from an already large base and just add whats missing.

What are other questions which might appear to be off-topic for similar reasons, and what is different about them that they should they not also be closed? (Or should they also be closed?)

Judging question isn't a task for a simple checklist. If that would work, we might have already implemented a script to do so. As with any real world decision, it's all about each individual case. And that#s the beauty of the SE principle. Everyone can raise a flag to mark a question as off topic,

And since no answer is complete without some analogies,

try to replace DMA in this sentence

"I've heard the term 'DMA' being used a lot in reference to older consoles."

by one word of this list and think about:

  • RAM
  • ROM
  • Clock
  • Sprite
  • Jump-And-Run
  • Bus
  • Bit
  • Stereo
  • ...

Does any of these generic terms get RC related just by mentioning it has been used with some older console?

And now for something complete different:

(well, not so much, but here specific to Curt's answer)

For everything mentioned during the first section: All nice, but hasn't been asked. Any answer beyond a basic "DMA is multiple bus masters" is better gathered from Wikipedia then writing a lengthy answer that (looking at Curt's points) will still be one sided and incomplete - if not missing the point at all.

Just take two explicite points:

  • The mentioning of "the not-insignificant cost of supporting DMA", which is plain wrong, or at best only relevant to some very specific CPUs. CPUs not supporting DMA right out of the box are a minority and usually special cases, like the 6502.

  • While being 'familar' with some aspect might be an issue, it's pure guesswork to go that lane. Solving missing knowledge about a basic concept of computing, not especially tied to retrocomputing is not a task for RC.SE.

For the examples given:

  • Memory Check: No,that isn't a generic question (asking for "what is a memory check" would be), not even one for hardware, but for the historic timeline as seen by him. So while the answers are rather technical, they follow that lead. And while the question may seam somewhat simple, it does hit exactly what I consider RC: Not (only) bit positions in a sprite register, but the history in context.

  • Z80 address test: I fully agree that a new Z80 machine would be at least borderline here. I have argued that several times, but had to accept that most others here have a different opinion. Having said that, the exact question is not about any new computer or chip (next to all old chips are still available), but the bus protocol of a classic CPU. This has been conformed as on topic several times. And I see no reason to differ here. Further, this question is, unlike the DMA one, not a vague call, that can be answered by entering DMA into Google, but a clearly formulated one related to RC knowledge.

  • BASIC-OS: While asking about still in use OSes might be questionable (I think they are fine), mentioning answers as primary reasoning is somewhat contradicting. Especially as this isn't, as I understand Curt's point, not about all answers and the question to be answerable within RC.SE, but some answers straying apart. That's complete 'normal' to be found in many questions. The SE system even offers a way to handle this by downvoting (*1).

  • Real Flat: That question is truly a beast of it's own. I have to full heartly agree, it does fit SO (the original SE.SE was clearly wrong) as a general x86 coding question. What I do not see is that the publication date of a book has any significance for on- or off-topicness. There are many brand new books about programming classic systems. So many, that it feels as if they outnumber contemporary publications.

Last but not least for the Volume Argument. It's not specific to Curt's answer but has been brought up by others as well. I do not think that it is a valid argument at all.

Or wait...

thinking of it, it is a quite good one: If it needs to be made, it automatically proves that a question is not on-topic at all. It's an argument that is only be made if there is no other to support the validity of a question, thus proving that the question is not fit for RC.SE.

Part of this argument is often pointing out that SE has certain thresholds for leaving Beta, number of questions being one of them. Just like any generic number applied to vastly different sites, it does neither good. Not every site does have the potential to attract large numbers of visitors, contributors and question givers. While it may be a setback to our ego: Some retrocomputing may be mainstream by now, serious dealing seams to be less followed.

So we will stay forever in beta-hell (doesn't fell like hell to me) - or not, as stackexchenge has recgnized the issue and already promoted several sites out of beta, despite not fulfilling all criteria. There is a chance for us. To go that way, we should focus on the things we seam to do right. That's good answers to relevant questions. Lowering standards instead may backfire.

Oh, and on a side note to the prelude, you seam to be obsessed with the score scheme. It doesn't matter if one answer gets 5, 50 or 500 points for some questions. As said in many places, they are only indicators, not anything to race for or nitpick about. They are just (if not less than) the icing on a cake. They are earned on each question separate and anew, helping to sort answers for future readers.

With a gamification like this, the game part is never important. Focusing on points never does any good. It usually leads to waste of energy in an imagined race, time that could be way better used to care for answers. It is, and always should be, about helping the OP with the issue he raised.

As for myself, I only care for giving an answer that helps the OP. Wherever possible exactly as asked, as the question wording reflects what the OP wants to know. If I suspect a deeper cause

*1 - Voting is maybe something we need to tackle again. Just not sure how. Fact is that while voting on questions is about personal taste, voting on answers is (or should be) about factual content. It seams that some use it more to voice a dislike with the answer, maybe when the information given doesn't fit their picture, or what they expect as an answer.

Similar Meta. I noticed Curt's answer got a downvote. While downvoting makes some sense on the main site, where it can be used to mark wrong answers, it's complete contra productive on Meta. Meta is not about right or wrong, but about opinions. Opinions can never be wrong. They may not fit, or one may not like them. In this case abstain is the way to respond. The only useful voting on Meta are upvotes to show support. It's like with any ballot. You ain't get to vote for a candidate and against others at the same time - the results would be ridicoulus, like they are on meta.

Some education needs to be done.

  • Perhaps my bad for assuming that everybody involved in this discussion would have some understanding of chip design, but DMA support having a non-trivial cost is the complete opposite of being "plain wrong." As well as significant one-time design and testing costs, the transistors use valuable silicon real-estate on the chip, increasing the cost of the chip itself, and additional pins needed on the package also increase the cost.
    – cjs
    Oct 25, 2019 at 12:45
  • "There are many brand new books about programming classic systems." I fail to see how this is relevant, since if you follow the link I gave you will see that his is definitely not a book about programming classic systems, but about programming modern systems.
    – cjs
    Oct 25, 2019 at 12:47
  • @CurtJ.Sampson It you want a serious consideration, you should at least act as if. Passive aggressive assumptions will not make it. Especially in this case, as I may have already designed such systems before you left kindergarden. Just don't assume without reason. Adding bus sharing is of little cost when integrated to a CPU - and the fact that the majority of early 8 bit CPUs (and that's where gates were even quite scare) have, as mentioned, build in bus master capabilities. Don'T make yourself a fool trying to hard to force a point.
    – Raffzahn
    Oct 25, 2019 at 13:10

You must log in to answer this question.

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