Hacker News new | ask | show | jobs
by naikrovek 2535 days ago
Lots of people were scary good at these things early on. Not everyone was as good as Woz, of course.

When you can fit the entire architecture into your head, all the way down to the chips and board layout, you'll find that you're capable of quite a lot on that platform.

A human with a skillet that has scaled up as much as computing hardware has scaled up is going to be virtually impossible to find, if not actually impossible.

Systems today are just too complex for one person to understand at the breadth and depth that Woz understood the earliest Apple hardware.

2 comments

One of the things that I liked about the Apple II was that it was possible for one person to completely understand the whole system. I don't know that I'm capable of understanding my computer's keyboard now.
Woz did a gnomdex talk in 2004 describing the power of exactly that; having the whole system in your head and being able to optimize because of that connectedness in one mind.
A keyboard is actually a good place to learn some hardware stuff. You can (relatively) easily build a keyboard from scratch and program the chip (excluding USB, which is another can of worms). They are lots of tutorials and documentation online to get you started on it
Did early 8 bitters actually have a keyboard controller, or was it shift registers hooked directly to the cpu or something.

Tried googling and didn't turn up much.

Keyboard interaction on the Apple II is entirely CPU-dependent, memory-mapped, and works like this: when a key is pressed, the ASCII code of the character is put at $C000, with the high bit set (a consequence of this is that there is no way for the computer to know that you pushed the shift key, for instance, or to tell the difference between typing Return or typing Control-M). Your program is responsible for checking $C000 from time to time. When the high bit is set, you read the character and access memory location $C010, which clears the $C000 high bit. Interrupts are not used at all, despite the 6502 supporting them, probably because disk and cassette IO is similarly done under CPU control with tight timing tolerances, and getting an interrupt in the middle of writing data would wreak havoc.

Details on page 16 of http://www.classiccmp.org/cini/pdf/Apple/Apple%20II%20Refere...

An exception is the "Reset" key which is hard-wired to the reset pin of the 6502. On early Apple II models, pushing "Reset", which is located just above Return, had disastrous consequences. People used to put a washer under the Reset key to make it harder to push by accident. Magazines published a simple hardware mod that required Control to be held at the same time as Reset, and later versions of the Apple II came with the mod built-in.

The Apple IIe keyboard adds two "apple" keys on both sides of the space bar which are dealt with in a completely different way, and are mapped to the same locations as the two joystick/paddle buttons. This was useful for playing games which required repetitive button-mashing, as it is easier to type a key quickly than to push a joystick button quickly. Since I was used to controlling the joystick with one hand and pushing a key on the keyboard with another hand, I had no problem adapting to early Macintosh software that required shift-click, option-click and command-click to overcome the limitation of a one-button mouse.

"The Macintosh mouse has four buttons, it's just that three of them are on the keyboard."

Here is how the C64 keyboard works in great detail: http://www.c64os.com/post?p=45
Not sure about keyboard but video on the ZX81 was achieved by way of a shift-register and the CPU was clocked short of 4MHz just so that it could keep this fed at the right rate. Check out the 8-bit Guy's video on the topic: https://www.youtube.com/watch?v=1Jr7Q1yJOUM
Each button has a unique code. It's packetized as usb or Bluetooth & sent to your pc. That's it.
Can you describe to me the architecture and components of a typical keyboard USB interface chip, both internal to the chip and external?
The whole point of this thread is discussing how engineers used to keep the entire design of the system in their heads, even the CPU. Being able to point to a repository of tech specs really isn't the same thing.
"A human with a skillet" -- oh, I'm guessing skillset is what you meant to say.

I was feeling old and thinking I was ignorant of some new slang there for a few seconds.

:-D

Well, there are youtube tutorials on how to solder SMD parts in in skillet, so you were not that far off ;-)
That's pretty funny, because doing some sort of electronic wizardry with a stove and a cast iron skillet is one of the other things that crossed my mind in that brief moment of confusion.

And it is totally something I could see Woz doing. :-D

'skillet' is some new slang, but it refers to your homeslice. This is just a typo.