There is a small but slowly growing hobby around retroprogramming for old PCs and compatibles. This hobby has existed for decades for other platforms, as evidenced by the active demoscenes on each retro platform, but the IBM PC (and other 4.77MHz 8088 compatibles) has only recently started to gain that same sort of attention. As a public service to the 8088 retroprogramming community — “All four of you, huh?” — I’ve decided to write a crash-course on optimizing your code for maximum speed on the 8088. This information is targeted to people who already know either modern x86 assembly or assembly for other CPUs, and are programming for the 8088 or 8086 for the first time (or the first time in a long while).
Optimizing for the 8088 and 8086 CPU: Part 1
Posted by Trixter on January 10, 2013
Posted in Programming, Vintage Computing | 28 Comments »
No love for the IBM PC
Posted by Trixter on January 9, 2013
I’ve always wondered why the IBM PC never really gained a massive retro following that the Apple II, C64, Amiga, etc. have. There was the half-assed birth of the Abandonware movement, but otherwise nothing. Where are the podcasts dedicated to old PC hardware and games? I only know of two worth watching. Where are the Kansasfests and ECCCs for the IBM PC and old compatibles? Where are the cycle-exact emulators (PCem comes very close) and pixel-clock-accurate video emulation that other platforms enjoy? And, other than the wonderful and excellent Vintage Computer Forum, where are the forums?
I think it’s because the PC won the home computer wars. All of the other retro revivals are for platforms that most definitely ended; the PC just stayed relevant and, today, is what everyone has on their desks. Even Mac desktops run Intel hardware. So the IBM PC never really went away, and you can’t revive something that never really died.
I think the classic Mac “scene” had/has the same problem. I haven’t seen any retroware emulation compilations with classic B&W Mac software that exist for other platforms.
Posted in Vintage Computing | 15 Comments »
The IBM PC 5150: What if?
Posted by Trixter on December 27, 2012
Did you know that the IBM PC was not originally designed around the i8088? Various sources conflict somewhat (including offline sources such as “Blue Magic: The People, Power and Politics Behind the IBM Personal Computer“), but the general consensus is that early 5150 designs considered CPUs that were both less powerful (such as the MOS 6502 and Zilog Z80) and also more powerful (such as IBM’s POWER predecessor 801, or the Motorola 68000 CPU).
I find this fascinating to daydream about sometimes. What if the IBM PC had not been built around the 8088? How would have the personal computer industry progressed in the 1980s? Who would the leader(s) be today?
Posted in Vintage Computing | 12 Comments »
Maze Generation In Thirteen Bytes
Posted by Trixter on December 17, 2012
Update 12/7/2012 @ 13:46: Peter Ferrie smashed my record by a single byte, so the record is now held by him at 12 bytes. Congrats, and I feel like a fool for missing it :-) I’ve tacked on his optimization to the end of my original post.
Update 1/7/2013: herm1t further smashed the record, down to 11 bytes!
Update 1/7/2013 @ 18:00: Peter bounces back and reclaims the record with 10 bytes! It kind-of breaks my target platform (uses an undocumented opcode that only works on Intel processors) but hey, a record’s a record! I’ve updated the article below.
In the past, when I’ve had a democoding breakthrough, I kept quiet and either used my discovery in a production, or just bragged to my demoscene friends privately. However, my opportunities to achieve democoding “world firsts” are just about gone, and size coding compos seem to be dead, so I’ve decided to just write a blog post about what I’ve done instead: I’ve written a maze generator in only 13 bytes of x86 machine code.
Posted in Demoscene, Programming, Vintage Computing | 30 Comments »
Sleeping in a Mall
Posted by Trixter on December 12, 2012
Just now, watching some 80’s music videos, it dawned on me that today — the second Wednesday of December — is the 25th anniversary of the time I slept overnight in a shopping mall. I keep meaning to write about that night, but keep losing interest… but today being the 25th anniversary of that night is too much of a coincidence to pass up, so here goes.
Posted in Family, Sociology | Tagged: Christmas, northbrook court, Personal | 7 Comments »
Anthropomorphising Computers
Posted by Trixter on December 4, 2012
A recent comment on a Slashdot story actually got me to laugh out loud at work enough to attract some attention, and that’s pretty rare for me (laughing at something I see on the internet). What got me to laugh? Human characterization of a computer. It makes me laugh because I do the same thing — I give machines personalities when I think about or work with them. (To those researching autism spectrum disorders, you might want to scribble something in your notebook right about now.)
Most people trying to comprehend what this is like would probably imagine something flamboyant and animated, such as Eric Schwartz’s tribute to the Amiga. While such characterizations are creative and nice, that’s not what gets me laughing. What does it for me is a computer that acts like a fallible human. Here’s the post that got me laughing, paraphrased slightly (for the uninitiated, ext4 is a method of storing files in a Linux system, and the context is an application “talking” to the operating system):
I don’t quite trust ext4 for writes.
app: Hey, can you write this data out to
ext4: DONE!
app: Uhh, that wasn’t long enough to actually write the data.
ext4: Sure it was! I’m super faGRRRRRRRRRRRRRst at writing too.
app: Wait — did you just cache that write and report it written, but then not actually write it to disk until 30 seconds later?
ext4: Yeah, so?
I routinely do this sometimes when dealing with a unix server that is hurting, such as having so many spawned threads due to an unforseen condition that there are several times more threads running than there are CPUs to handle them. I imagine each CPU as a juggler frantically trying to keep 20 pins in the air at once, sweating profusely, and calling out to the other CPUs for help only to have them yell back they are just as screwed as he is.
Does anyone else do this, or is it just me?
Posted in Sociology, Uncategorized | Leave a Comment »
Living with autism
Posted by Trixter on November 28, 2012
Sam, my eldest son, is autistic. We are fortunate that he is high-functioning, but it is something that the entire family will deal with for the rest of our lives as we try to find a pocket of the world for him.
When people ask me what autism is like, my one-shot answer used to be, “Ever seen Rain Man? It’s kind-of like that, but without a 25 million-dollar budget.” After last night, however, I have a new answer: Living with an autistic child or sibling is damn near exactly as portrayed in The Black Balloon, a movie written and directed by a filmmaker who grew up with two autistic brothers. The movie is full of insights and situations that come from that real place, such as what meltdowns are and what prompts them, reward systems, and how society reacts to something it doesn’t understand.
I highly recommend The Black Balloon if you want a quick introduction to what families with autism go through. Although it can be hard to watch at times for those already familiar with autism, I recommend they watch it as well, because it reminds you how you’re not alone, and that life on all spectrum levels can be fulfilling. The Black Balloon is available for Instant Play streaming on Netflix and on Showbox. A trailer for it is on YouTube.
A few times a year, I hear this from people learning for the first time about some of the difficulties our family has been through: “How brave! Where do you find the strength? How do you do it?” The answer should be obvious — because we have to! Spoken with a smile and a laugh, of course. And that is the feeling perfectly portrayed in The Black Balloon.
Posted in Family | Leave a Comment »
MindCandy Black Friday Deal
Posted by Trixter on November 23, 2012
A year ago, myself and a few friends completed our demoscene video trilogy with MindCandy Volume 3. This was the first volume to be rendered at 60 frames per second for Blu-ray; it makes for a great home theater showcase. Like all MindCandy volumes, most of the demos contain commentary from the original authors, so you can get some insight as to how they got their ideas and programmed the effects.
We still have some left, so we’ve lowered the price for Black Friday (and the rest of the holiday buying season) down to $17 for the US and $19 for Canada. (If overseas, you can try Maz Sound, CSW Verlag, and Amazon UK for the best deals.)
Posted in Demoscene, MindCandy | Leave a Comment »
Reverse-engineering an old wound
Posted by Trixter on November 8, 2012
Nearly two decades ago on the usenet newsgroups comp.sys.ibm.pc.demos and comp.sys.ibm.pc.soundcard, there were some accusations flung around that Josh Jensen (Cyberstrike of Renaissance, for those who still remember the PC demoscene) had copied entire chunks of Mark J. Cox‘s MODPLAY to use in his own modplayer SuperProPlay (and later MASI sound system). Just as time has a way of healing old wounds, advances in technology has a way of ripping them open again, and a chance encounter with some familiar assembly code in October got me thinking about the accusations against Jensen all those years ago. I didn’t give it much attention back then, but I’m a different person now, with much more skill than I had 20 years ago. With decades of x86 assembler, reverse-engineering, and programming skills under my belt, I decided to take another look at this issue to see if it could be answered definitively. I armed myself with much better RE tools (IDA) as well as Josh’s released Protracker Playing Source (PPS) v1.10 source code (PPS110.ZIP) and spent about an hour looking at them both.
My verdict: Josh quite absolutely copied entire chunks of MODPLAY for use in his own code.
Posted in Demoscene, Programming | 2 Comments »
Internet Detox Addendum
Posted by Trixter on November 3, 2012
While on my internet sabbatical, I watched most of the new season of The Outer Limits and was pleased to discover an episode that illustrated one of the concerns that led to my sabbatical in the first place. Titled Stream of Consciousness, it explores some possible downsides of being able to access all information all the time. It’s a little lightweight; no issues are ever explored in great depth. But I still recommend giving it a view.
Posted in Lifehacks | Leave a Comment »