The update that describes why 4KB of RAM was necessary was interesting to me. In 1998 I wrote a Java Virtual Machine in assembly language for a PIC-like microcontroller that only had 4k of ROM (actually it was 4k instructions, but they were 12-bit words giving 6kB). I managed to get all of the important features of the language to fit, including exception handling and an interactive debugger. However by the end, each time I wanted to add a new instruction to my code I had to find something else to optimize first so it would still fit in 4k.<p>By the end I convinced myself that 4k was the minimum possible code size for implementing a JVM.<p>The JVM was used in the Parallax Javelin Stamp - a Java version of the BASIC Stamp (<a href="http://en.wikipedia.org/wiki/BASIC_Stamp" rel="nofollow">http://en.wikipedia.org/wiki/BASIC_Stamp</a>).<p>As an aside, the SX microcontroller only had 256 bytes (yes bytes!) of RAM internally so I used an external 32kB SRAM for the Java heap and stack. The 256 bytes of internal RAM held the internal state of the interpreter and memory manager.
"In 1967 or 1968, as a senior in high school, our electronics teacher ... arranged for me to go to a company in Sunnyvale (Sylvania) to program a computer because I already knew all the electronics in class at school. Mr. McCollum did this for students with electronics abilities every year, finding local companies with engineers and projects that would let high school students come and and get some experience."<p>It's amazing that his high school had electronics classes and vocational externships. Is that something that was common at the time or just another amazing aspect of Silicon Valley?
"<i>The other 'bible' was a book "101 Games in BASIC." I was a fan of computer games and knew that as soon as I had a computer of my own I would want to type in all these games to play.</i>"<p>I don't know for sure, but I think Mr. Wozniak is referring to the book edited by David H. Ahl, <i>BASIC Computer Games</i>:<p><a href="http://atariarchives.org/basicgames/" rel="nofollow">http://atariarchives.org/basicgames/</a><p>Notes on the page mention the book was "[a]lso published as 101 BASIC Computer Games".<p>This book happened to be a great influence on me. Reading it in grade school gave me a small taste of what fun programming can be. I especially liked how some of the programs showed how simple rules can result in emergent and unexpected behavior. Not to mention how easy and fun it was to change the source (sometimes by accident... SYNTAX ERROR anyone?) and seeing what would happen.<p>Today, I have the distinct privilege to do effectively the same (different platforms, of course :)), and now it even pays the bills.
Woz is, for me, the ISO standard geek, the distillation of all that I aspire to. Somewhere in Paris is a vault, and in that vault is a platinum-iridium Steve Wozniak, against which all of us are judged and found wanting.
If you're interested in the actual details of the implementation of the syntax table, I had a great exchange on the 6502.org forum a couple of years back.<p><a href="http://forum.6502.org/viewtopic.php?p=17736" rel="nofollow">http://forum.6502.org/viewtopic.php?p=17736</a><p>There is a (relatively easier to understand) stack-based expression evaluator, with hooks to allow for operator precedence. The interesting part is the scanner, which converts each line of BASIC into the tokens used by the evaluator. This is the bit that has the "syntax table diagram".<p>You may also find this article by Woz on the Apple][ from the '77 BYTE magazine a pretty interesting read.<p><a href="http://www.downloads.reactivemicro.com/Public/Users/Grant_Stockley/Apple2WozSystemDescription.pdf" rel="nofollow">http://www.downloads.reactivemicro.com/Public/Users/Grant_St...</a>
In India I studied in a school that had only one electric bulb per class and a second hand MS-DOS machine donated by a politician. The school and teachers were glad to let me use it and I am eternally thankful to them for the same. It changed me totally.<p>We also had awesome electronics equipment lying around which we could use. I used IC-555 when I was in 8th grade to program a flashing LED and I can not explain the joy of doing it in words.
I programmed in Forth some time ago and I wonder why didn't Wozniak implement Forth on his first computer. Surely, it would be easier to do and run faster than BASIC. That BASIC was a naive interpreter, it couldn't help being slow, except for the primitives that Woz coded in machine language, I'm sure they were fast.<p>Was it already clear for Wozniak in 1975 that Forth looks weird and people won't get it?
I feel like gaming has always been an important application for driving hardware innovation.<p>It's interesting that this article shows that goes at least all the way back to Woz's home-built computer that turned into the first Apple.
"But I had in the back of my head that I could be a star, that I could get a little fame in the hobby world, like Bill Gates, if I created the first BASIC for the 6502." Big things start small!
<i>"I kept about 50 chronological folders of papers throughout all my BASIC design work. Each one was labelled GAME BASIC. So you can see where my head was coming from."</i><p>I'm not sure whether that 'kept' means they are gone, with that "<i>can</i> see" a sentence later, but if they exist, somebody should write a book or a paper on them.
this is a serious question.<p>does anyone know if woz lifted weights or participated in any other kind of serious athletics when he was younger? he's always very fit and muscular in early pictures and as many athletes do, he's gained some weight in later years.<p>i only ask because some contemporary biopic films/representations have portrayed him as out of shape in his early years and that's clearly bullshit.
I remember a quote by Woz I think it was with the hardware however, about being forced to design everything more completely before even starting to build it. There's got to be a lesson in that somewhere.
<i>Judging by my own feelings, I assumed that...</i><p><i>At least then I was sure that my computer could possible do the important things that high priced computers do, but I wasn't sure.</i><p><i>I sniffed the wind and knew...</i><p><i>I never saw my name in print so I didn't get that 'Bill Gates' fame, but I was known in my club.</i><p><i>Every club meeting I'd have a few more commands that worked fully.</i><p><i>Had I not cared about BASIC, I probably would have just built another switches and lights computer with minimal static memory and been done with it.</i>
"When you code by hand (couldn't afford a time-share account) it's hard to make changes in the middle structure of things that have to be at fixed addresses."
People always ask me, "what was it like to be homeschooled" and I never have an answer for them. It was all I knew. What was it like to go to public school? But this. This is what it was like. My sister and I did things, made things, whatever we wanted. We went places and interacted with adults and worked on real projects. Nothing as impressive as this, but lots of things far more impressive than our peers.<p>But that wasn't "being homeschooled", that was having our parents. I've learned that most of our homeschooled peers didn't do anything like we did. It was kind of a weird revelation to grow up in this group of supposed-academic-over-achievers, often feel like the dumb one because I hadn't read all of the books they did (which I now realize was because I had a much more balanced up bringing that included sports and other studies), and then be the only two (my sister and I) to make something out of our lives.<p>Religious zealotry will do that to people. And they were zealous in both homeschooling and Christianity. I'm now somewhat surprised one or two of them haven't committed suicide yet. I know one has tried, but his zealotry makes him refuse to get help. His father, being the local physician in our small town, apparently doesn't believe depression is a real thing. And yet half or more of his 11 kids are textbook cases.<p>It makes me sick. But again, that's not homeschooling, that's having certain parents. One's parents are, naturally, the biggest influence on their lives.
I believe I know exactly how he did it - the Richard Feynman Problem Solving Algorithm:<p><pre><code> * Write down the problem.
* Think very hard.
* Write down the solution.</code></pre>
"Wow, so, you mean people can develop software without using TDD and an OO language?!"<p>Edit: yes, this is why I have much more respect for Wozniak than for Uncle Bob or other consultants