Hacker News new | past | comments | ask | show | jobs | submit login
The Apple-1's unusual MOS clock driver chip (righto.com)
109 points by picture on March 21, 2022 | hide | past | favorite | 23 comments



I worked at a company that made video titlers in the 80s. They tried all kinds of interesting memory technology including bubble memory and CCD memory. I remember they deployed CCD shift register memory to customers, but it was pretty error prone- your text would get corrupted over time.

They made a 68000-based high resolution titler with fast SRAM for the display refresh memory. This would have been crazy expensive except that the image was stored in compressed format, and decompressed on the fly during display, so they only needed something like 64KB. It looked great, but composing the image (from annotated text) was very slow. I think Chyron just used lots of DRAM in their similar products (pretty sure they used 8086).


I'm not sure what the earlier Chiron units used for a CPU (I think I read somewhere that the Chiron II used the DataMate-70 minicomputer), but I'm pretty sure that Chyron's iNFiNiT! series used 68k CPUs (possibly a 68060 in the higher end units?).

I think I've said this on HN before, but professional character generators are woefully underdocumented. In a lot of ways, they were at the pinnacle of computing power (generating quality NTSC imagery is much more easier said than done). I'd love to see something like an emulated Datavision D-3000 one day. Modern computers can push around video well enough that such things could actually be shoehorned into a modern workflow (make the emulator into an NLE plugin that is scriptable and you'd be much of the way there).



I see an 020/881 combination in that Scribe. I also see the Intel chip but can't read it either. My guess is it's a 386


Had to look up Datavision D-3000 in action. https://www.youtube.com/watch?v=tt-gN-cIpxs Crazy!


Philips used CCD shift registers in their very early digital oscilloscopes (PM3310/PM3311) as well. This was then shifted into an 8085 based computer which rendered it out to the display. Absolutely horrible scopes to use and repair however. Was the only way to get 50MS/s though in the 80s!


Can we be friends? hn@randallb.com


Wow. I hadn't realized before today that the Apple I was basically a computer with a built-in character-only ASR-33 teletype terminal for interacting with it. Or, said another way, it was a teletype terminal which happened to have its own computer inside to talk to.

So, how did the Apple II end up using standard graphics memory which enabled games and such? From a 1984 Byte interview:

> Steve got intrigued with all these ideas and one day he asked me, "Why don't you use these new 16-pin dynamic RAMs?" I had looked at them in my work at Hewlett-Packard, but they were new and I couldn't afford any parts that didn't come my way almost free. I'm a little bit shy, and I didn't know any of the reps, but Steve just called them up and talked them into giving us samples. I jumped on it. I thought it was a great part because you could replace 32 chips on a board with just eight. It was a little more difficult to use because you had to multiplex the row and column addresses and that cost me one or two chips. But I was very happy because it was TTL [transistor-transistor 1ogic] compatible and I could save a lot of board space because the parts were so much smaller.

I guess this also answers the question of what Jobs was doing while Woz was being a genius. These guys were 26 and 22 - the hacker and the hustler. Sooooo amazing.


> Or, said another way, it was a teletype terminal which happened to have its own computer inside to talk to.

That is exactly what happened. A friend showed Woz how to access the Arpanet so he decided to build his own terminal. That was working before he started the Apple I, which simply added a built-in computer to the existing circuit.

In a similar way, the 1980 Decmate and the 1977 VT78 simply added a microprocessor version of the PDP-8 to an existing terminal (VT100 and VT52, respectively).


Author here if anyone has questions...


Did it use the Intel 1405 shift register chip, like the Datapoint 2200, or a different chip? I can't read the part numbers in the briefcase photo, and if the text names the shift register used, I missed it.

With regard to serial memories, you mentioned the EDSAC and the IBM 2260, but maybe it's worth expanding on how common serial memories were; I don't know if you think it's worth mentioning in this context, but delay-line analog memory was in use in PAL TVs and VCRs up to at least the 01980s and I think the 01990s, often made from piezoelectrics and fused quartz, and 01960s digital calculators like the Olivetti Programma 101 used magnetostrictive wire-torsion digital delay lines for their memory https://www.nzeldes.com/HOC/DelayLine.htm, which is possibly something I originally learned from your own blog. Turing's Pilot ACE and the UNIVAC I used mercury delay lines http://ed-thelen.org/comp-hist/vs-univac-mercury-memory.html, and the LGP-30 used a magnetic drum as a sort of magnetoelectromechanical delay line for its 31-bit "architectural" registers. Also, coaxial and lumped-element analog delay lines (similar to Pupinized telephone lines) enabled analog oscilloscopes to plot signals from before the trigger fired rather than only afterwards.

More generally we could get into bubble memory, CCDs, SPI interfaces to RAM, hard disk tracks, etc., as some of the other commenters have mentioned.


Thanks for the details on serial memories :-)

The Apple-1 display used the Signetics 2504 shift register: https://www.applefritter.com/files/signetics2504.pdf

It also used a Signetics 2519 6x40 shift register to hold one line: https://www.applefritter.com/files/signetics2519.pdf


Thanks! Maybe their PMOS nature (P-ness?) is the reason for the annoying voltages? I mean a (contemporary) four-phase-logic shift register wouldn't need those voltages, and of course neither do CMOS shift registers. Though I guess a 1024-bit CMOS shift register would still need a pretty good clock drive current, especially if fabbed at those sizes.


I think I saw it on an 8-bit Guy YouTube video - there's a screen clearing circuit. How did that work? If you can't access the shift registers in any method but sequentially how could the circuit clear the screen instantly?


According to the article the chip was clocked at 1 Mhz and only had 1 kilobit of storage, so you should be able to zero it out in a millisecond, less time than it takes to blit a single frame.


How did the firmware modify the data in the shift register to write text? Did it require cycle-accurate delay loops to hit it at just the right cycle?


It's pretty clever. One shift register held a bit to indicate the current cursor position. To write a character, the circuit waited until the cursor bit appeared and then updated the character shift registers. At the same time, the cursor bit was delayed to advance it to the next character. Note that you could only write characters sequentially; you couldn't write to arbitrary locations on the screen.


No question, just a thank you and appreciation for your excellent articles.


I thought Woz basically used Don Lancaster's TV Typewriter circuitry (also shift-register based memory).

https://en.wikipedia.org/wiki/TV_Typewriter


The Apple-1 display uses some ideas from the TV Typewriter (shift-register storage, another shift-register for a line, 2513 character ROM). But it is different in many ways, much simpler (the TV typewriter is 4 boards), and improved (24x40 display instead of 16x32 for instance).


I would just like to add a week or so later that reading this article finally flipped the switch in my head and I now understand how long addressable RGB LED strips work. It's a similar shift-register principle in action. Amazing.


Without deep dives like this, it's easy to underestimate how much of a wizard Wozniak is.


The pinnacle of Wozniak hacks was the floppy disk controller, but this comes pretty close.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: