One of the advantages of traveling is finding the “best of the best” and not being restricted to one city. Of course, it’s never easy finding the best stuff and having it match my travel schedule. Yesterday, I attended the “Drawing the Electric Synth with Sam Jacoby from MIT” class at SparkFun Electronics in Boulder, CO. I’m not terribly interested in electronic music, but why not give it a try …
… and, I had a blast. Sam proved to be an excellent and knowledgeable instructor with a clever and fascinating ideas. In the morning, he walked us through making speakers from bits of wire, paper, glue, and magnets – a great project for building hands-on skills and showing how it’s possible to build your own technology with a tiny bit of knowledge. Most of us just buy completed speakers or headphone and treat them as black-boxes, never to be disassembled or questioned. Sam showed us that speakers are simple technology well within the grasp of anybody. In the afternoon, we built the “electric synth.” The exercise was less about the music than about creative use of conductive inks to draw circuits and embed microcontrollers. I “colored outside the lines” and made my synth into a pyramid with the speaker on a paper spring. This construction technique, while imperfect since the inks tend to be difficult to place precisely and can be brittle, is powerfully simple. Anybody who can draw a line can build a circuit and harness technology in interesting, interactive, artistic ways.
Thanks to Sam Jacoby and the SparkFun staff for a good day.
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?
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!
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.
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:
- The TMS9918A VDP
- The clock generation circuit
- Video memory
- Video output
- Bus interfacing
- 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.
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.
|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.
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 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.
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.
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:
- 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.
- Quickly hit CTRL-S to stop the listing before any of it scrolls off the screen.
- Type in the listing on another computer.
- 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.
- Repeat steps 3 and 4 until you’ve re-typed the entire program.
- 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.