it has been a tradition for me to show the world a glimpse on ongoing projects every 1st of April. It's not only "April Fool's" day - so I can show projects that never may get to the finish line - but some people think April the 1st is the "birthday" of the Apple-1 (whatever "birthday" means for a microcomputer).
First, a disclaimer: the following does not imply you can ever get such a color graphics card from me. The reason for this disclaimer is this:
To turn these little "hobby" projects into something that could be sold as a kit, much much more work is needed, PCBs have to be designed and beta tested, the circuits must be 100% robust so they don't frustrate the builder, and to make sure they don't turn into a "phone call generator" or "buyback" candidate (like the Apple-1 itself), and last but not least, a lot of software needs to be written. Which, for instance, has bogged down my Apple-1 floppy disk controller presented on April 1st, 2021 --- two years ago:
Writing high quality 6502 assembly code with superior performance compared to the cr@p out there on the usual suspects of "free download" web sites is not easy and consumes a lot of time - "RQLT" - which in my case is priceless as I'm running out of it, due to age. Note that don't say that every piece of 6502 source code out there is cr@p --- there are some very fine examples of excellent 6502 assembly code even on github --- but too many others are cr@p. It's much the same thing as finding a diamond in a coal mine (or, for young men, finding a suitable spouse to found a family).
In case of source code, it's a bit easier to find a "diamond" once the masses have found it, tried it, and then gave raving reviews. So I could find it without even searching. But I could not adopt it for my purposes anyways, due to copyright issues, even if it is GPL'd. My mantra is to use only homegrown code for which I have all the rights. The sole exception is my use of Wozmon and ACI code for which Woz game me written permission to use it in my kits. Alas, for the floppy disk controller software (the "RWTS" and the DOS) and for the graphics routines in the Apple II ROMs, Apple (the corporation) still owns the copyright. Which means I would need to pay lawyers to talk to Apple's lawyers to work out some kind of written agreement so I could use their code (or parts of it). And that's not gonna happen. So I have to write all the code myself, from scratch, not even looking at their code.
Writing the code for the graphics card occupied me for the last 3 months. Just to get some simple demo program. At the moment I'm writing the sprite routines which is even more time consuming (they must be as fast as possible). I'm now at the point where I use automatic code generation and sprite compiling to speed it up. All done in 6502 assembly code - which is compact but generates the sprite engine code all by itself. Code which can morph while a game is running. Very sophisticated stuff, but not "AI". So don't hold your breath. There is a reason why the T-800 model 101 Terminator runs on 6502 assembly code ;-)
Now, this said, let's look at the graphics card hardware:
You may recognize that this grew out of my "56K DRAM card for Apple-1" project:
... which had been designed from the beginning to allow adding the color graphics hardware. This is accomplished by sharing the multiplexed address bus between the 6502 memory access and the graphics section memory access. But it's a slightly different concept than the one used in the Apple II, which has 4:1 multiplexers to make the multiplexed addresses. I use only two 74LS257 2:1 multiplexers to mux the CPU address bus down, and the graphics section uses PLDs which drive their row / column addresses via their tristate outputs directly onto the multiplexed address bus. Which conveniently is 8 bits wide because I use 64kx4 DRAMs. This greatly reduces IC package count. Which is essential to be later able to fit the whole thing onto the PCBs, which must be small. But in principle, the whole thing could be implemented with bipolar PALs (released by MMI in Y1978) and 16kx1 DRAMs. The PCB area needed would explode, however. So I chose to "cheat" a bit to keep it small.
FEATURES / APPLE II COMPATIBILITY
From a software side standpoint, this color graphics card behaves exactly (well, one exception, see below) like the Apple II: it has all the five modes (text, lores graphics, hires graphics, mixed lores/text, mixed hires/text) selected by exacly the same "soft switches" at addresses $C050 - $C057 (there is no conflict with the ACI). The two selectable screen pages also are there, at the same locations as in the Apple II. And if you put the same data into these pages as on the Apple II, you get exacly the same image, with the same colors. If you have done the oscillator fix (otherwise there may be no color):
This is where the "compatibility" ends, however. I've tried my best to make "vaporlock" work, but alas, it turned out that it would not work in all cases, and it's a fundamental problem because within the constraints of the Apple-1, and no brutal motherboard mods involving cutting traces etc., it is impossible to implement exactly the same weird video RAM address sequencing as seen in the Apple II. "S. Elliott" recently did some excellent work to bring this process into a nice, easy to understand visual form:
The problem with the "vaporlock" technique is that it depends on the CPU reading "bit vapors" left over from the video address scanning process, to determine where in the scanning cycle the video hardware might be. This information is then used to toggle the screen pages during the vertical blank period, an essential feature to get smooth, flicker free animation on the Apple II.
In my graphics card, these "bit vapors" also are there, but the scanning process has to be different to make the whole thing work together with the Apple-1 and still have color (unrelated to the oscillator issue, this problem roots deeper, to deep to explain here, would take pages).
VAPORLOCK SUBSTITUTES ?
So after I found out that "vaporlock" could not be made to work in the same way as on the Apple II, I dropped that feature. It would be useless if you could not copy functional "vaporlock" code from each Apple II game to port it to the Apple-1. Note that many Apple II emulators also struggle with making "vaporlock" work with each and every game out there. For instance, "DROL" uses different kinds of "vaporlock" code, but the variant in the "reunion" screen does not work in the version of LinApple I use, so the "mom" waits forever for the "kids" to appear and to run to her. The game hangs at that point. Much the same would happen if I would endorse "vaporlock" to be used with my Apple-1 graphics card. Either all the "vaporlock" code in all the Apple II games out there would work 100% reliable with it (no, it won't !), or it's a troublemaker, RQLT thief, and brings undue frustration to the programmer(s). I do not want any such imperfect non-solutions. The world is already full of half-baked cr@p. And the landfills. And github. And and and ...
PROPOSED VAPORLOCK SUBSTITUTES
A possible (and more robust) substitute for the elusive "vaporlock" technique would be to route the vertical sync signal to the /IRQ interrupt line, or provide some other way to allow the 6502 to look if the vertical sync or blank is active (Apple IIe and IIc provide a port to test for this by a simple BIT or other read instruction, making the "vaporlock" technique obsolete on these machines).
Q: which method would you prefer if you wanted to program / port a color graphics game to the Apple-1 ?
OTHER NASTY OBSTACLES
Yet another problem I ran into is the weird way the Apple-1 drives the address lines on the 44 pin bus. They are not the addresses from the CPU, but run either through the two 8T97 tristate drivers (A15...A12) or the four 74S257 multiplexers. And therein lies an evil trap: whenever one of the motherboard DRAM banks is activated, the six address lines A6...A11 on the 44 pin bus change to "multiplexed addresses" needed for the 4kx1 DRAMs (/RAS, /CAS related). This is bad because in such cycles, the 56k DRAM card only gets chopped up addresses, which are useless for it. The consequence of this problem is that a "write through" technique for the text and lores graphics pages ($400-$7FF, $800-$FFF) can't be made to work.
WHAT IS "WRITE THROUGH" ?
Let me explain what "write through" means: If we keep the on-motherboard DRAM bank "X" for the lower 4k at $0000-$0FFF active, then any write operation to it must write the data byte both to that "X" bank AND to the corresponding area in the 56k DRAM card. So that the video hardware can access the screen data from the latter. But any read operation from the CPU within the lower 4k must only activate the motherboard DRAM. This technique is known as "write through" - it's used in many systems where two (or more) copies of the same memory contents are kept so the copies can be accessed independently from the CPU or from (real) DMA which would steal CPU cycles.
Alas, this "write through" technique, although very easy to implement (one line of code more in the PLD source code) does not work on the Apple-1 because whenever the on-motherboard DRAM is accessed, said six address lines get chopped up. You can see this as yet another not-so-lovely design quirk of the Apple-1.
There are three possible solutions. One is to modify the timing of the DRAM /RAS and /CAS signals on the graphics card such that the DRAMs "catch" the address before the Apple-1 chops these six address bits up and makes them useless. Alas, this has downstream timing consequences for the color graphics section and turned out to bring too many complications.
The second solution would be to add a TTL package containing a six bit D-register to capture these six address bits before they get chopped up (one IC package more).
The third solution is to avoid all these complications by just disabling the lower 4k DRAM bank on the Apple-1 motherboard and to use the DRAM on the graphics card for both read and write operations in the lower 4k bank.
MOTHERBOARD MODS ?
This mod involves opening the "0" to "X" solder option blob in the patchboard at the 74154 address decoder. And then tying the "X" signal high. Alas, when this is done, the Apple-1 has no active lower 4k DRAM anymore when the color graphics card is not plugged in. Bad. To avoid, at the moment I use a resistor from "0" to "X" (hidden on the solder side) and a wire from "X" to "T", where "T" is an uncommitted signal on the 44 pin bus (confusingly, it's called "L" on the connector, what a mean trap, do not confuse letters in the "patchboard" with letters on the 44 pin bus). The graphics card, when plugged in, pulls "X" high to disable the lower 4k DRAM page on the motherboard. When the graphics card is not plugged in, the lower 4k DRAM page gets active again (select signal "0" reaches "X" via the resistor).
I'm still looking into the alternative, to use the "VMA" line for the same purpose, which would free the "T" patchboard signal for other purposes, such as routine the 14 MHz clock to the graphics card. At the moment I'm using patchboard "S" for the clock, but macintosh_nik just has snatched that away from me:
Another small complication that can be easily dodged. We all are "Apple-1 owners family" and want our Apple-1 gadgets to stay compatible, right ? Would be bad if for each change of a daughter card, changes to the Apple-1 motherboard would be needed.
ROTTEN CLOCK WOES - AGAIN !
The worst complication, however, is that regardless how the (lousy) 14 MHz clock is routed to the memory card / graphics card, it arrives on the card unclean (in the Apple-1, everything rings like hell, including the "ground" - there is no solid ground to be found anywhere in the machine) and it needs to be cleaned up before it can clock the memory and graphics state machines / counters. Alas, cleaning the clock up with a Schmitt Trigger introduces more delay, and the proper setup/hold timing for the PLDs get too tight. This is another sore spot that needs to be addressed. Sure, I could add a PLL to regenerate the clock on the graphics card, but this would add another two IC packages. And I want the PCBs to be small enough to fit into most Apple-1 enclosures I have seen here on Applefritter and on the Web.
MORE DEVELOPMENT WORK NEEDED !
So, still a lot of development work needs to be done, all caused by the quirks of the Apple-1, and this turned a project that was planned to take 3 weeks to inflate to 3 months (and growing).
"SPRITE THIEF" also is a "TIME THIEF" !
Much of that time budget overrun however has been caused by the work on the "Sprite Thief" tools which allow "stealing" sprites from Apple II games. This is just another example how one harmless and easy looking hobby project can spawn even more projects, it's like a chain reaction that got out of control. At the moment I have more than eight projects running, and all of them would require a full time employee each to finish them in a useful amount of time. So I recommend you: don't hold your breath while waiting for the release of any of my projects.
SCREEN SHOTS / PICTURES
Here is a screen shot of the hires page of the demo program for my graphics card:
It looks a bit cheesy (i.e. the weird thin lines) but these are absolutely necessary to diagnose possible problems with the hardware at a glance. The sprites seen were stolen by the "Sprite Thief" tool from the Apple II "DROL" game written by Aik Beng and published by Broderbund Software in Y1983, that was 40 years ago ! In the demo program, some sprites can move, but require more coding work before I can spend time to make a video. No smooth animation yet due to lack of "vaporlock". Once I decided how to add the test for vertical sync / blank, and have further developed the sprite engine, I will post a video here.
This is a photo of my whole rig from which the above screen shot was taken:
You can see that the Apple-1 "terminal section" still produces a text picture (of course !). The hex code you can see on the screen is part of the demo program running which created the colorful graphics page with the sprites on the color TV to the right side. I think having two video outputs on an Apple-1 opens up the opportunity to create some wonderful games the Apple II could not do. Text adventures come to mind. The text would be on the regular Apple-1 video output, and the game could be played there, but for anyone having the color graphics card, the scenery would also appear (on a color TV). Same thing would be useful for chess programs. Standard chess notation could be shown on the text screen, easily readable, while a graphical chess board could be shown on the color TV. The possibilities are endless.
That's all for today, a small glimpse on my Apple-1 color graphics card, its current state of development, and a discussion of all the problems I had to solve and some which still need to be solved. Some of these problems require your comments on which solution you prefer. Oh, and if you like or hate this project, please tell me, too. This is because I'm not inclined to design PCB layouts if there are only two or three Apple-1 owners in the world which would want such a graphics card. Since I work without profit (for a reason), such a card will not cost much, and I could provide complete or partial kits (naked PCBs and the GALs/EPROM perhaps). At the moment it looks as if this could be done below $50 (unless the US$ hyperinflates). The "GTP" effect must be reckoned with. ("Green Toilet Paper"). I absolutely hated to increase the price of my famous IC kits somewhat because most of the parts I still need to buy to complete the kits now have double or triple the price I must pay for them, compared to what I had to pay 3 years ago. The upside however is that these recent parts are better than the previous ones I had in the beginning (now CERDIP PROMs, grey original Signetics character generator, nicer condition of the leads of the carbon composition resistors - I bought RCR military types from specialized brokers, these came in robust, hermetically sealed aluminized bags complete with the JAN numbers, straight out of some military spare parts stockpile, after they expired and were sold to the brokers). And hence, they were not exactly cheap. But they do solder like a dream, without prior cleaning / rubbing of the leads with chemical potions. Only about a dozen of my famous IC kits left. After that I can't contribute much to the Apple-1 builder scene anymore, other than completing a few of my projects, like this one, and, of course, the floppy disk controller. Some kind words of encouragement from your side certainly could make that happen.
Comments invited !
- Uncle Bernie
Pretty neat project. I think hyperinflation is in the US and most of the world's future. I don't think that there should be expectations that retrocomputing is a cheap or "poor man's" hobby. The opposite actually, especially now. I don't see any reason why you couldn't reasonably ask 3-4x the BOM price for completed boards. Even kits you should probably be charging at least 2x BOM. Or if you don't want to deal with actually building stuff you could go the Open Source route.
@UncleBernie does not the VMA mod of Wendell Sanders solve your problem?
Nearly invisible mod but disables what ever you want on tha Apple I, PIA, Lower 4K, Upper 4K, Full 8K, the PROMs, it just depends on your decoder what areas are normal and which disconnect the Apple I board from the bus and just leaves the CPU and Expansion connector.
https://apple1notes.com/wp-content/uploads/2020/07/Apple-1-FRAM-Documentation.pdf full external 64K RAM (2x 32K FRAM) with WP function, VMA mod description included.
https://apple1notes.com/wp-content/uploads/2020/07/Apple-1-VMA-Activation-February-15-2015.pdf more detailed VMA mod description.
As you know I would use periode incorrect SRAM or FRAM and skip all that refresh and address bus multiplex stuff.
Actually I would use 128K as that needs only one chip instead of to 32K.
The rest of the FRAM board what is really needed fits easily in one GAL.
This would also remove I think 3-4 of the chips of your PCB maybe even 5.
You have proced that you can do it, but for "production" some more modern parts could be helpful.
What would FRAM or SRAM do to your bit vapor?
In post #2, softwarejanitor wrote:
"I think hyperinflation is in the US and most of the world's future. I don't think that there should be expectations that retrocomputing is a cheap or "poor man's" hobby. The opposite actually, especially now. I don't see any reason why you couldn't reasonably ask 3-4x the BOM price for completed boards. Even kits you should probably be charging at least 2x BOM. Or if you don't want to deal with actually building stuff you could go the Open Source route."
Uncle Bernie replies:
We are not yet at hyperinflation, but we have too much inflation for sure. The worldwide banking system sits on 100's of Trillions (!) of US$ "worth" of derivatives which are about to blow up in their face. Right now there are bank runs internationally, not reported by MSM (Main Stream Media), of course. The fallacy of these people is twofold: by emptying their bank accounts they accelerate the collapse, and the "toilet paper money" they get will be completely worthless (read: zero) once the banks have collapsed. If I would have a say I would tell them just to sit it out and leave their money in the banks. But I can't reach out to 8 billion people.
Retrocomputing has its merits. It is not cheap, sure. Even with my IC kits, nobody can build a complete Apple-1 system with keyboard and monitor below $1000. But I think it is a very valuable hobby - with this level of (obsolete) technology you can actually learn how these things really work. This knowledge and these skills (to program an Apple-1 from the ground up) is priceless.
Just last week, a very wealthy American bought one of my Apple-1 kits to teach his daughter (age: 6) how to build a microcomputer. She will be the youngest Apple-1 builder there is, worldwide. And she will succeed. And the knowledge and skills she will learn from that may be very very valuable after "weathering the storm that is coming". If she survives the storm. Hope she does.
I am driven mostly by the urge to teach people regardless of age, race, or nationality, how to build and understand this 1970s technology. I would love to hold lectures in colleges on 1970's NMOS IC design, but nobody wants that. I could also give lectures on how to design with 5nm FINFETs. But on the "other side", after the "storm" there will be no 5nm FINFETs and there will be no FPGAs and iwhether mankind still could run a 1.2 micrometer CMOS process after this transition is an open question I can't answer. CMOS was "invented" in Y1963 (the same year I was born and "Ironman" aka Tony Stark was invented --- oh I love Iron Man, except all the movies after the first one are woke cr@p) but they could not master the production process. Metal gate PMOS became viable in Y1968. Depletion load NMOS in the mid 1970s. CMOS in the early 1980s. In the early 1990s most IC designs still were at or above 0.8 um. Leading edge semiconductor companies worked with 350nm in the late 1990s and with 180nm and 120nm in the early 2000s. Costs exploded. I was in charge of the development of mixed signal capabilities of a 90nm process of a major semiconductor manufacturer in 2001/2002 and then the whole effort fell apart because the costs for upgrading the wafer fabs were too high. We had the devices, we had the process technology, we had the wafers with test devices, all ready to go but the C-suite would not - or could not - write the check for the lithography tool needed in the fab. Later, they sacked the CEO. But the damage was done (I had left as my stock options got worthless).
Why I don't charge 2x or 3x the BOM for my kits. I don't need the f*cking money. I have far, far too much money to sleep well. And I have no worthy heirs. And my life time is running out. Best thing probably would be to buy a private jet and fly it solo around the world to set some records ("Worldrounders") until money / fuel runs out and the whole thing including me drops into the ocean never to be seen again.
My current IRS tax return is more than 48 pages. If I made any profit from my Apple-1 hobby it would grow to maybe 56 pages. And my tax accountant (a big, expensive law firm) would charge me so much money for the additional paperwork that - to make it worthwhile - I'd need to increase the price of my kits by $100 each, or more. For naught. The kit builders would need to pay that (plus the VAT plus the customs extortion in their home countries) and neither me nor they would have any benefit. Maybe I could fuel up a small airplane for the "profit" ? Once ? Per year ? of selling "kits" at $100 more each ?
Why should I be so stupid ? All the hassle with these extortionists for naught ? It's simply not worth my time to even consider making "profits".
About open source - I hate that, at least for my work. But I love (and appreciate) those who make their work open source. (See the contradiction). Here is the reason. Once you make something open source, any idiot in the world (and there are certainly 7+ billion idiots out there) can take your "open source" work and poop / vomit all over it, bending it, eventually ruining it. There is a reason why Linus Torvalds - one of my personal heros and a great benefactor to mankind - kept the Linux Kernel under his tight control for many, many years. I'm not saying that "Open Source" is bad, understand this. Even those individuals who want to "contribute" to an open source project may have honest motives to improve things. But, as a undeniable fact, there are not all too many IQ 160 or IQ 180 individuals out there who actually could bring real improvements to the "open source" technology at hand. So despite their honest - and honorable - motivation they could only make matters worse. My raging about the "cr@p" on github is not unfounded. "opencores" the same thing. People think they are bright when they aren't, and their "works" they think are "genius" actually are "cr@p". Like most artists. Don't get me wrong - there are some really bright people out there, who have put great things on both github and opencores or on applefritter. The problem - as with everything you can find "for free" on the internet - is how to discern what is cr@p and what is the proverbial "diamond in a coal mine". Sure, you will give it a try and find out - in most cases after having spent a lot of your own RQLT on the assessment, just to find out you stepped into a pile of cr@p. In some cases you might have been able to write a crude tool for the task at hand in the same time all by yourself - which would be limited, but it would work as expected, no nasty surprises, no head scratching.
The trick, as it seems, is to be able to discern what is a "diamond" and what is "cr@p" with the least amount of RQLT expended.
The problem, as I see it, is that most of the content of the internet is cr@p. Which swamps the "diamonds". Same thing with TV. Same thing with women. Just to avoid being called a misogynist, from a woman's standpoint, but I'm not in these shoes, for a woman seeking a man, it's probably the same problem: most men are cr@p. No marriage material. As are most momen. (To be fair).
As far as I'm concerned, I have made a lot of my previous works "open source" - and these are the cherished sources of my wealth and financial independence - and in this case, I was lucky enough that worthy developers have adopted them, and have developed them further, harnessing their own skills and re-implementing their improved versions using more modern components. But I've also seen cases of unworthy impostors taking my work and slapping their own credentials into it, without improving anything, because they are feeble minded parasitic impostors unable to understand my grand designs. And these disgusting creatures even post their "exploits" slapping their name in my work on youtube. Still, I take this with a chuckle (Otherwise they would be dead by now).
You see, the world is complex, has many players, and "Open Source" has its pros and cons. One thing in closing: like with nations, "open source" projects attract forces of evil which intend to destroy, not to create or improve, and these forces of evil must be reckoned with and kept out. As I see it, the nations of the world now are under such an attack, from forces of evil, so be aware, keep your eyes open, and guard your back.
- Uncle Bernie
So UncleBernie, when will you decide to release the design? (I'm referring to the schematics) Will you be making a board, or might you eventually release a schematic for others to make the board?
I know you're still working on the design but at some point it might be a good idea to release it before it reaches 100 percent in your eyes. I say this because if you're like most engineers, that almost never happens!
You've done a miraculous job in bringing color and sprites to a computer that was never intended to process such. I can see paths forward for this design that push it very close to the Apple ][.
Bravo on all you have put into this project. Quite impressive.
In post #5, macnoyd wrote:
"So UncleBernie, when will you decide to release the design ?"
Uncle Bernie answers:
My current plan, if there is enough interest, is to first release the memory expander card to select "beta testers". This will plug into the edge connector of the Apple-1, so you can still use all the other daughter cards which plug into the sole 44-pin "slot" connector.
It may be necessary to "tweak" these memory cards to an individual Apple-1 so as to make them work 100% robustly. A test program will be provided, of course. The "tweak" will be a trimmer and some solder blob options on the memory card. Nothing dramatic. No oscilloscope needed. I got my card working 100% perfect on all the Apple-1 I have (fifteen examples built from various generations of my IC kit). But there is no single configuration which would work on all of them. I see this as a warning sign.
Once this beta test of the memory card is done and no major issues come up (= happy users ;-) then I will design the layout for the graphics card. Again, this will require beta testers. The graphics card will attach to the memory card. The (mechanical) idea behind this is to plug the memory card into the edge connector. It will have a form factor such that the ACI with its audio cables will not have conflicts with the memory card. Hence, I must keep it small. The graphics card will be a narrow, long strip of PCB which attaches to a 20-22 pin port on the memory card and runs along the edge of the Apple-1 motherboard, very tight, not touching the heat sink. I hope that this arrangement will make it fit into all the nice enclosures many Apple-1 builders have built and posted photos thereof.
The graphics card will come with the source code of the drivers but I still have to find a way to keep them proprietary / under my control. Not "open source". But beta testers will be granted the right to use my proprietary drivers (or parts thereof) to make their own software and publish that as object code / executable. They will not be allowed to publish my driver source code (for a while).
At the 50th anniversary of the Apple-1, I hope to have finished a book on the Apple-1 in which absolutely everything is published, schematics, source code, a description how the Apple-1 works, all my Apple-1 designs and source code, the whole shebang. But to finish that great work (now at ~200 pages) I still need cooperation / help from several key personalities, including Woz, who seems to avoid me since a while. So I'm not sure if I can complete this great work.
Once the book is out, anyone will be able to adopt anything in it and maybe there will be some enterprising people who will make kits for these add-ons ? I don't have the RQLT to do that nor do I need the money that could be made by producing these kits based on my designs. It's a small niche market and we all can be happy if there are entrepreneurs who make Apple-1 kits / Apple-1 PCBs / wave soldered Apple-1, etc., available for purchase. Believe me, there are no fortunes to be made with that. It's just a very, very tiny niche. If I could sell my Apple-1 IC kits by the 10's of thousands, then of course I would turn that into a business, with profits, employees, and all. But frankly, I sold less kits than Mike Willegal, who started it all with his reproductions of the "MIMEO" PCBs, and my kits are almost sold out now. But I'm happy that I enabled many new Apple-1 builders to build their machines, and they work better than ever thanks to all the refinements / mods I have developed. Some builds based on my kits are on display in museums all over the world.
- Uncle Bernie