Home » We’re The Only Car Site To Generate Member Perks On Genuine 40-Year Old Computers And Here’s Why That’s Cool

We’re The Only Car Site To Generate Member Perks On Genuine 40-Year Old Computers And Here’s Why That’s Cool

Robot Top
ADVERTISEMENT

We’ve talked about the benefits of becoming an Autopian member before: it helps to support good, independent media in these difficult times, I’ll draw you a car for your birthday, you’ll get some great swag and merch, and you’ll be privy to special content, events, and warm hugs from Autopian staffers (consent permitting).

For those Autopian Velour and RCL members who renewed, I want to give a rundown of a new perk, one that replaces the hand-drawn car drawing on your birthday: a unique, custom-generated robot image made with hand-drawn graphics by me and rendered on a real 1982-vintage Apple ][+ computer.

Vidframe Min Top
Vidframe Min Bottom

If you’ll indulge me, I’d like to explain why I’m doing this and why I think it’s cool – and force you to understand a bit about the strange world of 1970s computer graphics.

Fullapple

Okay, Why?

First, I should explain why we’re doing this thing that, upon first glance, seems painfully close to all that NFT bullshit that was urinating in the soup of human culture not that long ago. The goal wasn’t anything like that. The goal was to give myself a bit of a break! You see, I love doing car drawings for members, but when we promised that, we didn’t think through what that would mean as things scaled up, and for renewing members. Would I need to draw cars for every member’s birthday, every year? I’m already so behind on drawings! I needed to figure out some way to get renewing members something unique, hand-made, and cool without, you know, pushing myself too far. Because I, uh, shouldn’t.

ADVERTISEMENT

So, some way to automate these member drawings would be good! But I don’t want to use some AI image generator like Midjourney or whatever – that feels wrong, and part of what we want to offer our members is something personal, something that actually comes from me, because I appreciate every member, dammit. Some cold, unfeeling AI can’t do that!

That’s when I realized I could leverage my other, non-car obsession – archaic computers – into helping me out, for a change. I could automate the process of art-making by hand-making a lot of graphical pieces, and then writing a program in BASIC to randomly put those parts together to make something unique and fun! That way, members get a unique bit of art – or at least something art-adjacent – that I hand-made, while at the same time could be automatically generated in quantity.

Okay, But Why Robots?

In the interests of full disclosure, I have to tell you that David has issues with this part of the project. David, quite reasonably, notes that this is a car website, and we should be delivering car images to our members, not robots! David was a bit indignant about this, and even spit-took some of the PB Blaster cocktail he was drinking in rage when he found out about the robots.

And, yes, I agree, cars would be ideal! But I decided to go with robots – for this year at least, I think I will be making car graphics for next year’s renewal images – for one very good reason, which I think you can infer from this image of the Apple //c system running the software I use to make the graphical elements:

Shapemaker Stick

ADVERTISEMENT

Making the graphics is an ass-pain. For this to work, I need a lot of discrete elements I can mix-and-match to create whole images. These graphics are made individually and stored in something Applesoft BASIC calls a shape table. I use a utility from 1984, called The Complete Graphics System from Penguin software to build my shape tables, and I use that joystick you see there to do so. It is a tedious process, with a capital -edious, and I had already built the set of robot heads and bodies and legs, so I figured why not leverage them for this? Robots are sort of in the general Autopian wheelhouse, sort of, right? I mean, I like them?

Look, David isn’t wrong, but also I don’t think it’s a horrible affront to offer robots here. We’ll do cars for next years’ birthdays, okay? I just need some time to build all those elements!

Let’s Talk About How Weird Apple II Graphics Are

Now, part of the reason why I’m so into this ridiculous stuff is that I have a strange fetish, artistically, for limitations. I love limitations. Limitations force creativity to thrive, and the stranger the limitations, the better. The Apple II platform, first developed in 1977, is an absolute bouquet of strange and fascinating and difficult graphical limitations, and so I find it really rewarding to work with.

The Apple II was the first personal computer normal people could consider owning that was even capable of color graphics. The way the Apple II managed to provide color graphics in an era long before specialized graphics chips or cards or standards is a tribute to the incredible genius and creativity of its designer, Steve Wozniak. All Apple II color graphics are possible because of quirks in the way televisions draw images on screens. As far as the Apple II knows, it’s just generating black and white pixels, that’s it.

But, when patterns of those pixels are sent out as an NTSC video signal, they get interpreted as colors, thanks to something known as artifact color. The Apple II isn’t really generating a color signal – it’s generating a series of pixels that the display device – a TV or monitor or projector or whatever – confuses for colors, but the end result is color on the screen, so that’s good enough!

ADVERTISEMENT

Here, look at this. This is how the robot looks on a color monitor:

Colorbot

But, on a monochrome monitor, you can see how the colors are really generated: patterns of vertical lines:

Monobot

Those images are from an emulator; on a real CRT monitor, you can see color fringing on the vertical lines of the text, too, since the monitor is trying to interpret those lines as color:

ADVERTISEMENT

Crt Shot

Weird, right? Now, these vertical line patterns are just even or odd: so, even lines are green, odd are purple, two dots next to one another are white, and all off is black. So that’s four colors. But the Apple II high-resolution screen can do six colors! How is that possible?

Well, it’s possible with more weirdness, specifically moving things half pixelYes, the Apple II can shift pixels by half-pixels if needed to get two more colors. That also means even though the screen is 280×192 pixels big, which by modern standards is tiny, as you can see here with this actual-size 280×192 image:

Actualsize

…but it also means it can really place pixels at 560 points across the screen. Of course, because color requires even/odd pixel patterns, the effective resolution for color is only 140 pixels wide. But you can mix monochrome 280-pixel images on the same screen, if you want. This also means that the set of colors from the half-pixel-shifted set (orange and blue, if you’re wondering) will clash with the green/purple colors, so you have to be careful about having them next to one another, horizontally.

ADVERTISEMENT

So, when I build the robots, I do some things to get the most colors I can per robot. Since each robot is made of a randomly-selected head, midsection, and lower body, before I draw each segment I randomly pick which color group will be used. Each color group has its own black and white, and by filling in the area where the robot part will be drawn with the black from a given group, I am moving the pixels in that area a half-pixel either way.

So, if the random number generator says use color group 1, the pixels don’t shift. If the random generator says use color group 2, I fill the area with the other black, and shift the pixels by a half-pixel, meaning the image I draw there will use orange, blue, white and black instead of green, purple, white and black. Here’s an example where the top two segments use color group 1, and the bottom segment uses color group 2:

Colorgroups

It seems like an ass-pain, right? And yeah, it kinda is, but it’s also how you got full-color (well, six color) high-resolution graphics without expensive specialized hardware back in 1977!

Also, I love this kind of crap. I love the slightly blurry look of the colors on a composite CRT monitor, I love all the crazy hoops I have to jump through to get lots of colors in these robots, this sort of inanity is my kink.

ADVERTISEMENT

How Do I Get It From That Old-Ass Computer To You?

I could keep going on Apple II graphical weirdness, but I’m not that cruel. Besides, there’s another mystery to sort out here: how are we getting images generated on a 1982 Apple II Plus onto the internet? This part is a big deal for me, because I do not want to use an emulator or anything like that – these images need to be generated on real hardware, because that’s important to me, and, I hope, you. Also, I want the look of a real CRT, because emulators just don’t quite do Apple II graphics justice.

So, to manage this, I’m leveraging one of my favorite parts of the Apple II design: the Game I/O port.

You see, the Apple II had a really interesting game port, something that was normally used to plug in joysticks and paddles for games, but could be used for so much more. In addition to the inputs for push buttons and paddle potentiometers, the internal game port also had outputs, called “annunciators,” and these could send a small amount of voltage as a signal to a given pin on the port based on program control.

This allowed for all sorts of things: people have built MIDI interfaces and robot-arm controllers and home automation systems for the game port, so why can’t I use it to make things for Velour and RCL members?

Gameio Setup

ADVERTISEMENT

So, here’s what I did: I used one of the annunciator ports and connected it to a little relay, which I then connected to a jack that would plug into the remote trigger port of this Canon DSLR camera I had laying around. Well, my friend Rob Terrell actually was nice enough to build the cable for me, so thanks, Rob.

In my BASIC program, after I generate the robot image and then randomly pick the robot’s name and display it all, I tell the computer to POKE -16295,0 which triggers Annunciator 0 at pin 15 to fire, which triggers the camera shutter, taking a picture of the Apple II’s CRT screen. Then, I reset the annunciator, clear the screen, and start over!

And, it mostly works! Sure, I get some unwanted reflections on the screen at times, and sometimes the flash wants to go off and that screws up the timing of things, but for the most part, I can get about 250 robot pictures taken before the battery dies.

Here it is in action:

ADVERTISEMENT

So, this is all a hell of a lot of explanation for why renewing members will get silly-looking 8-bit robots with funny names on their birthdays. Even if David doesn’t like the idea of robots, I know he likes the idea of deep, technical dives, so hopefully this has made him at least a little happy.

For everyone else, I hope you like your new robot pals! They were made with love and, yes, a lot of healthy tedium!

Relatedbar

Another Reason To Be An Autopian Member: I’ll Draw You A Damn Car

Car And Driver Cuts Half Its Issues As Media Continues To Feel Like It’s Dying

I Draw Custom Cars For Autopian Members But, My God, Why Are No Two Requests The Same?!

Share on facebook
Facebook
Share on whatsapp
WhatsApp
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on reddit
Reddit
Subscribe
Notify of
71 Comments
Inline Feedbacks
View all comments
Slower Louder
Slower Louder
3 months ago

Robots, you bet. Jason, everything you do here, every goofy thing you write, is like delicious gravy. Gravy, gravy, gravy. We’re gonna lap it up.

OldJackBurton
OldJackBurton
3 months ago

10 Print “Torch Rocks!”;
20 Goto 10

Camp Fire
Camp Fire
3 months ago
Reply to  OldJackBurton

COTD!

Marathag
Marathag
3 months ago
Reply to  OldJackBurton

what was it, 15 PRINT CHR$(7)
to make it ral annoying?

Ostronomer
Ostronomer
3 months ago

BASIC was my intro to programming, and it totally BLEW MY MIND when I decided to fill the screen with random dots of random colors and IT WASN’T RANDOM AT ALL! I apologize for all the caps, but my mind was truly blown that my quick star-field effect came out as colored stripes. It was a good lesson.

Also, this is awesome, and I wanna robot! I just upgraded. =) =) =)

Parsko
Parsko
3 months ago

Well, I’m sorry Torch, but David’s right about this. At the same time, he is also wrong. The v2 birthday robots will go for enough to put grandchildren through college at some point. It’s almost like a whole season of misprints, done on purpose.

Meanwhile, robots are ALSO awesome. And how you are doing this is also VERY much awesome. I fully understand how and what you are doing, although I don’t know the language. It is difficult to write this code. I spent a lot of time learning the hard way to do it in Python a few years back. I therefore lubricate this idea with oil.

Chronometric
Chronometric
3 months ago

That reminds me of the time my friend and I spent an entire Thanksgiving holiday in our dorm room programming a home made CP/M computer to print high resolution pixel plots of the fractal Mandelbrot set on a brand new thing called a dot matrix printer.

Love the robots.

Knowonelse
Knowonelse
3 months ago

Hmm, can the width of the robot body be widened? Enough to simulate the front view of a car? Legs become wheels. Head becomes windshield and top.

Parsko
Parsko
3 months ago
Reply to  Knowonelse

Great idea! I wonder if he has it done completely programmatically. In that case, it should be possible.

Mike Dris
Mike Dris
3 months ago

I would normally be concerned about you inhaling too much lead-acid battery dust but you already owned the old Apple equipment.

Totally not a robot
Totally not a robot
3 months ago

David will learn the error of his robot-hating ways.

Everyone eventually does.

Slower Louder
Slower Louder
3 months ago

I agree, heroic. High-level obsessional. I welcome the robot overlords.

Rob
Rob
3 months ago

Torchy, you even have the appropriate Amdek Color 1 monitor *AND* its front door is still intact?

A hero to the retrocomputing space.

Eric Smith
Eric Smith
3 months ago

Hero level hacking.

Exactly the kind of project I’d spend two months of weekends on, marvel, put in a box and forget about forever (and the kind of project my wife would question her own decisions over).

Awesome job and great writeup!

Lava5.0
Lava5.0
3 months ago

This is almost tempting enough to upgrade my vinyl membership…

Old Hippie
Old Hippie
3 months ago

Autopian is also the only website to use 40-year-old computers as their servers!

3WiperB
3WiperB
3 months ago

Thanks for my Sasquatch Amalgamated Cyberpal Model 6444 Torch!

A. Barth
A. Barth
3 months ago

I think we’ve established that Autopians are into mechanical stuff in general, and robots are mechanical stuff, so by the power vested in the transitive property (Thanks, Jack Trade) Autopians should be interested in robots. 🙂

Also we greatly appreciate your birthday-oriented efforts and ask that you (literally) don’t hurt yourself over them. OTOH I understand how helpful an activity like that can be when there are physical limitations – even temporary ones.

I was not an Apple person back then, but in the 1990s became an aficionado of another RISC-y company: Sun Microsystems. On the Shelf of Doom(tm) in my basement rests a fully kitted-out SPARC5-110 (256MB RAM! 2X CD-ROM!), waiting for the day when it might become useful.

Fun fact: the screen resolution was 1152×900.

Dan Pritts
Dan Pritts
3 months ago
Reply to  A. Barth

Had one of those on my desk for a few years. I was told that 1152×900 was chosen because it was the desired aspect ratio and it fit into a megabyte (in 1-bit monochrome). That was back in the sun 3 (or maybe earlier) days when they used Motorola 68000 architecture CPUs.

I don’t know why they wanted 5:4. Most PC displays of the era were 4:3. Perhaps programmers wanted more vertical space. Makes sense to me, I definitely would like after living with today’s widescreen monitors.

Your sparcstation should boot without a display, with console on the serial port.

You probably know this but to get the real time clock working across reboots you need to kludge it somehow. The battery is built into the EEPROM chip which has the hostid and probably the firmware. Using a replaceable coin cell would have made too much sense.

Alec Rosenbaum
Alec Rosenbaum
3 months ago

I was born in 1980 and we got our first computer, an Apple IIc, in 1984. I learned a lot of weird stuff on that machine, which I have all but forgotten. Thanks for bringing back some memories! Keep up the shenanigans, but don’t blow another internal hose!

Jack Beckman
Jack Beckman
3 months ago

Can’t wait for mine! This is awesome. And I haven’t seen a POKE command used in a long, long time, which just makes this all that much cooler.

Doctor Nine
Doctor Nine
3 months ago

This is peak Autopian. Please proceed with your evil plan.

Jeff Diamond
Jeff Diamond
3 months ago

I say robots shmo-bots, it’s all good!

Jason, David and the entire Autopian tribe are a quirky bunch of individuals and that’s what makes Autopian great.

So, let your freak flag fly Jason.

Also thinking that if I show this to my wife she’ll stop thinking that I’m the biggest geek nerd that ever lived 🙂

MATTinMKE
MATTinMKE
3 months ago
Reply to  Jeff Diamond

Can’t agree more with the first 3 points. As for point 4, good luck with that.

Mark Tucker
Mark Tucker
3 months ago

David’s wrong. This is way cool, and I love all the technical geekery (and could mostly follow it!).

Toecutter
Toecutter
3 months ago

I do pixel sprite art for an RPG I’m working on. I wish I knew how to automate that while retaining my own characteristic style… The art assets are the largest portion of the work, moreso than the coding and testing.

Col Lingus
Col Lingus
3 months ago

Nasal spray Percocet? Where do I sign up?

BTW Torch how’s the new/old van? Is DT gonna tell us about the frantic /repair process? Or did shit go smoothly for once in his life?

Mechjaz
Mechjaz
3 months ago

I’m not sure Torch has realized that his “nasal-spray Percocet in saline solution” is just used aquarium salt water with a fresh medicinal scent, but nobody tell him.

(for actual real, I love the cars and the robots, and at terrible risk to his health and well being, hope to wring a Sentra birthday pic out of him before he despairs of the task altogether)

Jack Trade
Jack Trade
3 months ago

You did write a book that featured robots and cars in the very title, so shouldn’t David be assuaged by invocation of the transitive property?

Amberturnsignalsarebetter
Amberturnsignalsarebetter
3 months ago
Reply to  Jack Trade

“assuaged by invocation of the transitive property”

I’ve been waiting a while for that phrase to complete my Autopian comments bingo card, thanks Jack Trade!

Jack Trade
Jack Trade
3 months ago

Your card should totally also have someone pointing out it’s not the best choice and here’s what I got wrong (b/c I’m fairly sure that’s the case here).

I love how I invariably learn something new here every day that I often then use to harangue people in real life. Just like Torch’s apocryphal man on the street grabbing arms with his sweaty hand to rant about something automotive.

121gwats
121gwats
3 months ago

I say this not to criticize or diminish your awesomeness, but to help create the best possible old school robots possible: I think your DSLR is back-focusing on the reflection and not the screen, except for the green robot (the rest look a tad soft). If you’re using auto focus, stick it on manual focus and rack that thing until the screen is sharp. I think its grabbing the reflection, as is often the case when shooting reflective surfaces. You can also close down to f8 or more, but that may make it grainy. I vote somewhere in the f4-f5.6 range and manual focus.

I realize these may just be a quick grab shot to show off your 8-bit art. These are super cool, and I’ve always been a fan of your work.

Paul B
Paul B
3 months ago

I’d recommend a black cloth over the front edge of the monitor to over the camera to get rid of reflection. Also, it may be worthwhile to have your program take 2-3 pictures in case you capture the scan line. It will save you having to reload a robot to fix the picture.

And maybe the fine gentlemen at Beagle Bros. software from back in the day have a tool to help you create graphics:

https://beagle.applearchives.com/vintage-software/

121gwats
121gwats
3 months ago

Shooting at night with the lights off should also work to get rid of refelctions, and perhaps be less complicated than a blanket. Monitors have a refresh rate of 60hz, and if you get banding (flickering where part of the screen is black) then you need to slow down your shutter speed to 1/60th, although this doesn’t seem to be an issue. You got this Torch!

Thx1138
Thx1138
3 months ago

Torch- Try setting the shutter speed to 1/60th a second, manual focus on the screen, f4-6 on the aperture, no flash (you will get an overfill on same), then you could put cardboard around the monitor to extend outwards far enough to avoid the glare from the window. Let the ISO go to what it needs to be to hit the exposure right- not so grainy (that camera may be good up to ISO 2,500 or so). Try a few shots and change the F stop as you need to have good clarity.

121gwats
121gwats
3 months ago
Reply to  Thx1138

^^ This 100% – Careful hand holding at 1/60th, but it looks like Torch has a tripod so he should be good. Newer cameras paired with Lightroom’s AI noise reduction are incredible, I can get an ISO 8000 image to look like ISO 100, no joke. It will look a tad plasticy on skin tones, and I only do it in emergencies, but for landscapes, its amazing. Robots should be fine as well.

Lori Hille
Lori Hille
3 months ago
Reply to  121gwats

For reflection… I don’t know if it works for monitor screens. Way back in the 1980s when I used a 35mm Canon AE-1 Program SLR with actual film, I could use a polarizing filter to lessen or eliminate reflections and glare when taking a photo of something in a museum display case (no flash) or a view out a window.

Someone else’s photographic comment begs the question: if there’s no film, how does a DSLR develop grain?

121gwats
121gwats
3 months ago
Reply to  Lori Hille

Grain = noise

71
0
Would love your thoughts, please comment.x
()
x