Alan Kay on modern computers

David Greelish recently posted an interesting interview with Alan Kay, a visionary behind the modern graphical user interface.  Interestingly, Kay argues that modern computers fall far short of the original vision and potential.

For all media, the original intent was “symmetric authoring and consuming”.

So much of our culture is about consumption.  In some ways, the Apple II was more inline with Kay’s vision.  At least with the Apple II, the machine was open and programmable out of the box.  With an iPad, Apple might grant you the privilege of creating content (“apps”) if you ask nicely and pay.  Related, Kay is talking about sharing and growing substantive ideas.  Pick your favorite social media site – on one hand, these sites make it easy to contribute and even easier to consume.  On the other hand, there’s very little substance to the content.  The “ideas” that Kay discusses are painfully absent from the latest cat photo.

“Science requires a society because even people who are trying to be good thinkers love their own thoughts and theories — much of the debugging has to be done by others.”

There’s a growing “maker” culture where these ideas appear to be growing.  Increasingly, people want to “make it themselves” and share rather than merely consume.  Mainstream products like the iPad haven’t, in my opinion, caught on to this yet, but there’s potential.  It will be interesting to see what happens; the “maker” ideas potentially have a huge impact on culture, education, and economy.


The KIM-1 was an early single-board computer that helped introduce the “masses” to micro-computing with the MOS 6502 processor.  MOS built and distributed the KIM-1, presumably to help sell more microprocessors.  Briel Computing has recreated the KIM-1 with the MicroKIM.  I built a MicroKIM at KansasFest last summer.  The kit was a blast to build.  Although more complex than other kits I’ve built, the build went smoothly and produced a working MicroKIM on the first try.  Vince Briel has done a nice job of producing a reliable, straightforward, and fun kit.  I look forward to getting the RAM and I/O expansion boards.

The MicroKIM appeals to me because it is a self-contained single-board computer (SBC).  I don’t need a monitor or keyboard to use the board – the inbuilt hexadecimal keypad and 6 seven-segment displays are adequate to use and program the system.  Of course, most folks will want a terminal with a keyboard and display after a few minutes with a comparatively limited keypad and seven-segment outputs.  But, I find the self-contained nature and self-sufficiency of SBCs like the MicroKIM or KIM-1 appealing.

I do wish the the MicroKIM had a wider power input range.  Off-the-shelf adapters that provide the ideal input voltage, about 8 VDC, are difficult to find.  As is, the MicroKIM uses a 7805 regulator, which requires a minimum of 7.5 VDC and is inefficient at higher voltages.  I wish the board used an LDO regulator, with a lower minimum input requirement, or a more efficient switching supply.  This isn’t a big issue – rather, it’s an annoyance that kept me from using the MicroKIM while I searched for a suitable supply.

So, what shall I do with a MicroKIM?  I want to follow Mr. Loofbourrow’s lead and build a robot.  Unfortunately, this project requires more time and space than I have right now.  I’m thinking a simple RPN calculator would be fun and instructive.  Any other ideas?

MiniRoboMind Board Support Package Release

I’m pleased to announce the release of my board support package for the MiniRoboMind (MRM).  The MRM is a single-board computer based on the 68332 micro-controller and is the heart of BlueBot.  I found software support for the MRM to be scattered and incomplete, so I wrote my own with inspiration from existing software.

I’ve decided to release my library as-is based on some discussions on the Yahoo Robominds mailing list.

My library is far from complete.  It does not support all the hardware or options available.  However, it “works for me” and will grow over time.  At the moment, you’ll find support for the following:

  • Analog-to-digital hardware
  • Atomic operations
  • Exception handling and decoding
  • GPIO via the SIM
  • HD44780 LCD
  • QSM SCI, for 9600 8N1
  • QSM SPI, for certain options and message sizes
  • Periodic timer
  • PWM via the TPU QOM function
  • TPU UART, for 9600 8N1
  • Newlib, including printf()

Some code, noted in the comments, is copyright Cygnus Support.  Otherwise, I wrote the code and retain copyright.  Code I wrote is licensed under GNU GPL v3.

My support library requires GCC 4 built as a cross-compiler targeting M68K with Newlib.  Have fun!

Download the code here.

American Computer Museum

I recently visited the American Computer Museum in Bozeman, MT, which includes exhibits like an Apple I, assorted Apple IIs and Macs, two models of Altair systems, a PDP-8S, an IMSAI, electronic and mechanical calculators, many personal computers, and a Minuteman missile guidance computer.  Check out my photos here.

Interfacing the F18A to the Apple II

What does it take to interface the F18A, a modern FPGA-based clone of the venerable TM9918A Video Display Processor (VDP), to an Apple II? Short answer: not much. Here’s the long answer.

Let’s start with analyzing the design of the E-Z Color Graphics Interface, a TMS9918A-based “sprite board” with the design published in the August 1982 issue of Byte. Examine the schematic in Figure 4.

There are six major sections of the circuit:

  1. The TMS9918A VDP
  2. The clock generation circuit
  3. Video memory
  4. Video output
  5. Bus interfacing
  6. Decoupling capacitors

The F18A includes the functions of sections 1 through 4. So, with only one F18A, a few capacitors, and a single 74LS00 (for the bus interface), we’ll have a working sprite board for the Apple II. Sounds like a job for SuperProto.

Where are the sprites in my Apple?

The Apple II, first announced in 1977, had in-built color graphics capabilities.  Certainly, these capabilities are rudimentary by standards even five years later, but graphics capabilities were a big deal in 1977.  Previously, hobbyist accessible computers like the KIM-1 and the Altair 8800 had absolutely no video or graphics output.  At best, the owner could open up their wallet again and attach a teletype or terminal.  So, the Apple II with a real keyboard and graphics output to a television helped start a new era in personal computers.

Woz designed the Apple II video circuits for low cost using the technology available in 1977.  A few short years later, the emerging lineup of contemporary 8-bit computers, like the Commodore 64, TI-99/4A, and ColecoVision, offered graphics capabilities more advanced than the Apple II.  The 8-bit Apple II’s graphics capabilities saw only minor updates, including 80 column text mode and double hi-res graphics.  It wasn’t until the release of the 16-bit IIgs that the Apple II line got significant video upgrades.

In an attempt to fill the video capability gap of the 8-bit Apple II line, several third parties released graphics boards featuring the popular Texas Instruments TMS9918A video display processor (VDP), a specialized integrated circuit (IC) used in many contemporary machines.  Among other features, the VDP supported hardware sprites, a feature that allows small images, such as characters in games, to move over background images with minimal work from the CPU.  The TMS9918A-based video boards are often called “sprite boards.”  In contrast, similar functions with the Apple II video hardware alone are tedious, slow, processor-intensive, and limit other features possible in the software.  Overall, the video boards allowed the Apple II to produce smoother, higher resolution graphics with more colors, all with less effort from the programmer.

Here’s a summary of the “sprite boards” on the market.  Please let me know if I’ve missed any.

Name Retail Price Notes
Third Millenium Engineering Arcade Board $225 – $295 AY-3-8910 sound, single monitor with software switch between TMS9918A and inbuilt output
Synetix Systems Sprite-I $149 appears to be a feature reduced (TMS9918A graphics only) version of the SuperSprite
Synetix Systems Sprite-II $249 appears to be a feature reduced (TMS9918A graphics plus sound but no speech) version of the SuperSprite
Synetix SuperSprite $395 AY-3-8912 sound, Echo II speech synthesizer, software support with Avant-Garde’s StarSprite I, II, and II
E-Z Color Graphics Interface $175 Design published in Byte (Aug. 1982), no sound or video pass-through

But, these add-on video boards were never popular.  First, there was a “chicken and the egg” problem.  The boards required modified software to use their capabilities, so few people wanted to buy the boards without software to make it worthwhile.  But, few programmers wanted to write software for the boards because few people owned the boards.  Second, the boards were expensive.  And, some of the boards required a new monitor, which further added to the cost.

Mr. Maginnis, a respected archivist and Apple II user still active in the community, once wrote:

It’s a shame those boards never gained more than minimal acceptance. Too expensive, I suppose. The graphics (and sound for that matter) of the II series were among the worst in the industry…

Why am I bringing this up? Matthew of Code|Hack|Create recently created a pin-compatible clone of the TMS9918A using an FPGA, called the F18A. The F18A improves upon the TMS9918A is many ways, most notably with VGA output. Can you say “dual-monitor Apple II with accelerated graphics coprocessor and VGA output?” Sure, the primary video output is still the familiar composite output, but there are still interesting possibilities.

Over the coming months, I’ll research and write about how to interface the F18A with an Apple II, both hardware and software. Please contact me if you have any information, documentation, or software related to the Apple II sprite boards.

[UPDATE: Dr. Weyhrich of Apple2History originally referenced a "StarSprite" board.  But, further research finds that "StarSprite" is only the software for the SuperSprite.  I've removed the "StarSprite" from the board list above.]

HackFest 2012

HackFest is both a tradition at KansasFest and for me personally.  I find that as I attend more KansasFests, my HackFest projects get smaller simply because I’ve discovered all the fantastic off-schedule activities.  At my first KansasFest, I’d retire to my room between sessions and after meals.  But, some of the best discussions and discoveries occur wandering the halls and meeting people.

Anyway, my entry this year was a Lissajous curve plotter with mouse control of the parameters, sort of like a mathematical “etch-a-sketch”.  The Lissajous curve is a parametric mathematical function that produces fascinating curves of which circles, ellipses, and parabolas are special cases.  These curves show up in mathematics, nature, popular culture, and even jewelry.

Peter’s HackFest 2012 entry, a Lissajous curve plotter with mouse control

Due to limitations of my living arrangements, I came to KansasFest with little hardware and software.  I had an Apple IIc, an old copy of AppleWorks, and the introduction disks that shipped with the Apple IIc.  By necessity, my goal was to use what would have come in the box when the computer was new.  One of my AppleWorks backup disks was corrupt, so I reformatted that and re-purposed it as my HackFest disk with ProDOS 1.0.2, the only version I had on the original system disk.

While moving into the dorm at KansasFest, I found a mouse in Sean’s traditional give-away box.  I’ve always wanted to program a mouse on an 8-bit system, so I grabbed it and decided to incorporate it into my HackFest entry.

HackFest was great fun.  I enjoyed using real hardware, refreshing old Applesoft skills, and learning mouse programming.  I also enjoyed experimenting with Lissajous curves and with relationships between mouse input and function parameters.  Feel free to enjoy and adapt my program, available here for download under a CC BY-SA license.  The LISSAJOUS2 file contains my HackFest entry.  LISSAJOUS3 contains a few minor improvements made afterwards.  This disk image is the result of the first and hopefully only application of the ScreenType™ process because I don’t even have a serial cable on hand.


ScreenType Data Transfer Process

Transferring data to and from your favorite Apple II is easy, thanks to technologies like ADTPro, the Uthernet adapter, FTP, and the CFFA3000.  In fact, these technologies make data transfer too easy, hopelessly ruining the retro experience where 1200 baud is fast and data is supposed to spin in tiny circles at 300 RPM.

I’m pleased to announce the new ScreenType™ data transfer process, featuring complete electrical isolation between your computing systems, an accuracy rate rarely exceeding 98%, and a personal promise that your hair will fall out or gray prematurely.  Here’s the process for transferring Apple II programs:

  1. Display your program on the screen.  If your program is in Applesoft BASIC, type “LIST”.  If your program is in machine language, type “CALL-151″ to start the system monitor.  Then,  enter the starting address and press “return” to list your program in hexadecimal notation.
  2. Quickly hit CTRL-S to stop the listing before any of it scrolls off the screen.
  3. Type in the listing on another computer.
  4. Quickly hit CTRL-Q to resume the listing.  Then, hit CTRL-S again to stop the listing before any of it scrolls off the screen.  If you’re too slow with CTRL-S and part of the listing scrolls off the screen before you type the code in, start over.  Yes, you could just list the program one screen full at a time rather than do the CTRL-S/CTRL-Q dance, but that’s no fun.
  5. Repeat steps 3 and 4 until you’ve re-typed the entire program.
  6. Hope and/or pray that you typed everything exactly right.  If not, start over at step 1.  If you get disheartened, remember that this is the “true retro experience” much like typing in games from magazine listings using a keyboard with broken arrow and backspace keys.  Be happy that you have a real keyboard and CRT rather than punch cards.

With minor adaptations, you can apply this process to any program or data file on any computer.  Want to pirate Windows 7?  No problem … just don’t ask me for help with the typing.

The ScreenType process in progress for Peter’s KansasFest HackFest program

Magnetic Media – Do Not X-Ray | Do Not Bend

I just received the latest issue of Juiced.GS and found this stamped on the envelope.

This is 2012.  Almost nobody even knows what “magnetic media” is anymore.  This stamp could be a foreboding sign:

You’re walking down a dark alley.  Rats, scratching for a bite, scurry behind the overflowing dumpsters.  Somewhere in the shadows there’s a raspy breathing sound.  A windowless padlocked door has an old handwritten sign:  “Magnetic Media”  Beneath that, barely visible under rust brown splotches: “Do Not X-Ray | Do Not Bend”.   A cold mist has settled on the ground.

Thankfully, the envelope contained, nestled between the full-color cover pages of Juiced.GS, a 5¼” floppy disk in a hand-made sleeve with Drift, an original Apple II program with all new music, graphics, ASCII art, and easter eggs.

KansasFest 2012

KansasFest was a non-stop blast of fun, knowledge, and friends.

I presented a session on solar powering an Apple II.  To make room for luxuries like cups and water in my 70 square foot van, I had to put my Apple IIs in storage.  Due to a bit of luck, I managed to find an Apple IIc on Craigslist in Salt Lake City.  Under a nasty layer of dirt, I found a good condition ROM FF machine with a 9″ monochrome green monitor, ImageWriter printer, assorted disks, and assorted manuals.  I solar powered this machine and am currently enjoying retro-computing overlooking the The Grand TetonThe presentation slides are here, and Ken’s video recording will be on the KansasFest website.

This year’s event was exceptionally (and pleasingly) busy with barely an idle moment, and I’m not sure how to enumerate the awesomeness.  David, Earl, and Carrington recorded a live episode of RCR.  Juiced.GS announced another year of publication.  Ken and Mike of Open-Apple shared bloopers.  Vince helped me build a Replica Micro-KIM.  Martin released a new game and a nifty new programming language.  Geoff schooled us on toolsets, CDAs, and NiftyList.  Brian gave us an inside look into his Firefly documentary and the filming of Serenity.  Randy shared his long history with Apple II software, Beagle Bros, and Appleworks.  Romero captivated the audience with his stories of Apple II gaming and influence on modern gaming.  Alex shared his robot, WALTR, and other projects.  I got a shiny New Apple II User’s Guide.  I bought a SuperProto prototyping card.

I look forward to next year and am inspired to continue my Apple II related projects.