Be advised; this thread is not for serious in depth discussion of weighty topics, this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.
What is this place?
This website is a place for people who want to move past shady thinking and test their ideas in a
court of people who don't all share the same biases. Our goal is to
optimize for light, not heat; this is a group effort, and all commentators are asked to do their part.
The weekly Culture War threads host the most
controversial topics and are the most visible aspect of The Motte. However, many other topics are
appropriate here. We encourage people to post anything related to science, politics, or philosophy;
if in doubt, post!
Check out The Vault for an archive of old quality posts.
You are encouraged to crosspost these elsewhere.
Why are you called The Motte?
A motte is a stone keep on a raised earthwork common in early medieval fortifications. More pertinently,
it's an element in a rhetorical move called a "Motte-and-Bailey",
originally identified by
philosopher Nicholas Shackel. It describes the tendency in discourse for people to move from a controversial
but high value claim to a defensible but less exciting one upon any resistance to the former. He likens
this to the medieval fortification, where a desirable land (the bailey) is abandoned when in danger for
the more easily defended motte. In Shackel's words, "The Motte represents the defensible but undesired
propositions to which one retreats when hard pressed."
On The Motte, always attempt to remain inside your defensible territory, even if you are not being pressed.
New post guidelines
If you're posting something that isn't related to the culture war, we encourage you to post a thread for it.
A submission statement is highly appreciated, but isn't necessary for text posts or links to largely-text posts
such as blogs or news articles; if we're unsure of the value of your post, we might remove it until you add a
submission statement. A submission statement is required for non-text sources (videos, podcasts, images).
Culture war posts go in the culture war thread; all links must either include a submission statement or
significant commentary. Bare links without those will be removed.
If in doubt, please post it!
Rules
- Courtesy
- Content
- Engagement
- When disagreeing with someone, state your objections explicitly.
- Proactively provide evidence in proportion to how partisan and inflammatory your claim might be.
- Accept temporary bans as a time-out, and don't attempt to rejoin the conversation until it's lifted.
- Don't attempt to build consensus or enforce ideological conformity.
- Write like everyone is reading and you want them to be included in the discussion.
- The Wildcard Rule
- The Metarule
Jump in the discussion.
No email address required.
Notes -
So I'm continuing my journey through assembly programming and 8088/DOS programming specifically.
I wrote a pretty simple ascii object dodging game. I did it first using all standard DOS or BIOS interrupt calls for all the drawing. Then I did it again just directly accessing the memory for the screen, and writing my own interrupt handlers for system ticks and keyboard interrupts. It's been a fun proof of concept.
Next up, I'm going to try to dive into the vagaries of EGA, and replace all the ascii stuff with actual graphics. And probably tune the difficulty more as well. I haven't delved much into the nuts and bolts of how you write to the screen with EGA. I saw that supposedly there is a vertical retrace interrupt, which for the most part you should never use because not all EGA cards, and especially most VGA cards, actually implemented it. Apparently it's even a discrete pin on the ISA slot that you can check whether it was even wired or not? Also the specific hardware IRQ for it got reused a bunch later, so you can't even be certain the IRQ you are services is the vertical retrace? So there is a register you can poll instead, if the vertical retrace interval is important to you.
Aside from that, apparently EGA works by having 4 different bit planes overlapping the same memory space. By default the bit planes correspond to red, green, blue and intensity. I'm under the impression very few games bothered to change these defaults. Each bit is one pixel. So to write anything other than white to the screen, you need to set the plane masks and the bit masks to registers for the EGA card. I haven't delved into the nuts and bolts of implementation yet. They crow about how it allows you to more efficiently write to the screen with few calls, and that seems possible in theory. But for any image of any color complexity, I wonder if the overhead of constantly changed masks registers eats severely into that. We shall see.
Maybe at the end of this I'll start uploading all my shitty ASM to github or something for people to gawk at. But it's mostly practice for a retro style RPG I'm always planning on making using OSRIC, since it's open source and basically AD&D, my favorite rpg system of all time. And I'm not creative enough to come up with an RPG system from scratch, much as I want to create my own CRPG. At least not out the gate. Training wheels first.
... when I first filled screen screen with BIOS 10h paint pixel calls, I found it was very slow... I wondered why??? I had written it in assembly!...
don't you want to use VGA mode 13h, much simpler?
I may, but my target platform is a NuXT, which is basically a slightly suped up IBM XT SBC. Because of the Trident 9000I VGA chip they chose, it's technically capable of VGA. But from everything I've seen, the CPU really can't push the pixels for it. So I want to stick to EGA at least for now.
More options
Context Copy link
More options
Context Copy link
Planar (bit pane) video modes are actually about fast reads. Not for the CPU, but the hardware on a video card can read the data from multiple vram chips in parallel when outputting to a monitor. 320 x 200 x 4bits x 60Hz was a lot of bandwidth for 80s memory chips.
I kinda get your point, but it's orthogonal on how these bits are presented to CPU. You can use multiple chips without any of this color planes thing. Also, EGA also had 640x350x 4bits mode which would require >64 kb address space if not this trick. CGA which had less memory did not use color planes.
More options
Context Copy link
More options
Context Copy link
More options
Context Copy link