Hacker News new | past | comments | ask | show | jobs | submit login
The Apple-1's shift-register memory (righto.com)
102 points by kens on April 11, 2022 | hide | past | favorite | 55 comments



A previous article posted a week or so ago from the same blog finally flipped the understanding switch in my head and I now understand how long addressable RGB LED strips work.

It's a similar shift-register principle in action. Each LED light along a wire reads a serial data line and extracts a certain number of bytes depending on the type of RGB LED it is, then passes the rest of the data on untouched before resetting to read mode again after a certain amount of time (the refresh rate). So, if you want to update the 5th LED color, you need to fill the pipe with the data for the first four LEDs which simply keep them the same color, and then the new data for the fifth LED at the end.

I thought that was very cool.


Author here if anyone has shift register questions :-)


I would love a bit of explanation about why the shift register ICs were spread out so far on the circuit board. Your diagram [1] shows two sets right next to each other with a third set on practically the opposite side of the board. It would almost seem easier to have them all right next to each other so they could cleanly shift. Why the separation?

1 - https://static.righto.com/images/apple-shift-reg/board-label...


Oh good, a non-geopolitical question :-) I think there are a few reasons why the shift registers aren't all next to each other. First, there are 6 shift registers (6 bits), but they interact with two 4-bit multiplexers. So you have blocks of three chips to position. Also, the top bit of the shift register is modified for the cursor, so additional chips are required for that shift register. So it's not as easy as putting the shift registers together, since there are other chips involved.

But why are they at opposite sides of the board? I think that is because the shift registers are very simple chips as far as connections, just 6 pins in use. So it is a lot easier to put them at the edges than a chip that has 16 pins in use, since there are only a few lines to route.

Note that the large vertical gap between rows of ICs so there is room for all the horizontal wiring. So I think the board had more capacity for horizontal wiring than vertical wiring. As a result, related circuitry is in the same row. E.g. the display stuff is in the same row (mostly), the CPU, peripheral adapter, and RAM are in the same row, and so forth. I think the video circuitry is in the top row so they can put the output connector at the back.

I'm sure there are more constraints on routing this board that I can only guess at. Even from a quick look, there seem to be a lot of factors.


I saw a photo of this board elsewhere today and I'm also just fascinated by the routing, which seems so completely different from everything else I've seen, even from the era. Were they just trying to make a board where everything, including all traces, components, and connectors, were all on one side? And then they wanted test points on literally every bus line?

Seems like something must have motivated it.


Remember, no PCB CAD tools, it was likely laid out by hand - double sized with red/blue tape - the engineer had to work from a (probably) hand drawn schematic and keep all the layout in his head


I'm not sure about your interpretation. It's a double-sided PCB. I think the vias are what you're calling test points. It looks fairly standard to me.


Hm, fair enough. It's the staggered and widely separated rows that are strange to me.

The photo I saw before was at an angle and I didn't see that some of those spots went 'nowhere'. Looking again at the top down photo/diagram linked above I do see that they're vias now.


First of all, thanks for all your blog posts. It's really interesting to see and understand actual die shots, not just understand it "in theory".

Secondly, how was the shift register actually used? Since every bit pushed in will result in one pushed out, wouldn't that force the input to be pushed in at the same rate as the output and thus the shift register just adds a delay? Or does it happen in two rounds, like so?

1. shift the screen data in and discard output

2. shift the screen data out at a different speed (presumably faster) while shifting in dummy data

Or is there a third option I haven't thought about?


You feed the output of the shift register back into its input. Only when you want to change the display do you break this loop to feed your new character data into it.


Ah! I didn't think of that option. So the shift register keeps rotating regularly each frame and by timing it correctly, you can change specific bits.


You preempted a question about the lineage from/comparison with acoustic delay lines in footnote 2.

Thanks for the posts :-)


It's worth realising that shift registers for displays were a kind of obvious thing at the time - our mainframe had operator consoles that used mercury delay lines for this ....


Was that the IBM 2260 display station? It used sonic delay lines, a 50-foot coil of nickel wire. Torsional pulses were sent into the wire, and it could hold 11,008 bits.


I was thinking more of a Burroughs 'SPO' on our B6700 - but delay lines were a common low-cost storage back then - also 'drum'


I love those. It is surprising they didn't come out sooner.


"Access was denied Error code 1020"

Is the site blocking Russian IPs? I managed to open it with VPN.


Yes, accesses from Russia are currently blocked.


If you really want to harm the Putinists, insert an overseas jobs listing link when a Russian IP is detected. Encouraging brain drain is likely the most effective way the tech community can harm the regime. Welcome a Russian, make a friend, maybe drain the regime.

I see too high a ratio of sticks to carrots these days, but maybe that's just me.

Edit: I just finished 10 years overseas, and occasionally caught flak for US policies that I disagree with. I'm rather sympathetic to (would-be) expats in general.

Edit 2: I spent an extended period in Kyiv, and it really was wonderful city. I found the Ukrainians to be generally kind, but a bit distant, not a warm sort of friendliness. (Though, I look Slavic enough that I was regularly mistaken for Russian when I was in Turkey. I'm sure that helped my experience in Ukraine.) If I could have lived in Kyiv at my current salary, I would have done so (without foresight of this war). I'm really rooting against the Putinists, but I feel sympathy for the common Russian, even those who swallow the propaganda.


What is the point of this block?


The idea is to send a message, that Russia's behavior is unacceptable. Obviously the block isn't causing any actual harm, since people can use VPN if they need access to information about 50 year old shift registers.


And if VPNs become inaccessible or someone can't afford one?

I don't get the point of just punishing the citizens. All you're saying is "don't consume our info. Stick to your own." It's goofy. And really, it does a great job of helping Putin's "The world hates Russians and wants to punish us!" message. Because, frankly, this just punishes Russians and does absolutely nothing to the people in charge lol

Are people in Myanmar, Saudi Arabia, etc blocked as well?


Yes, they are.


Who is supposed to receive this message? The Russian IT workers, many of whom already find Russia's behavior unacceptable?


Though a sadly non-zero proportion of Russian IT workers (who live in my country, Australia) do not. Which made working with one of them, when my partner is Ukrainian and whose family is currently in mortal danger in Rubizhne, really awkward.

Thankfully that contract ended not long ago, and I turned down the renewal.


If that coworker was a factor, I hope you told them so. More information would help everyone make better decisions, including that coworker, when it filters to them.

I approve of the idea to brain drain Russia of all educated workers by offering them residency and easy immigration into Western countries. That, IMO, should include all such workers, regardless of their support for the Putin regime. The goal is to eliminate Russia's ability to assault another country again by denying it use of contemporary technology. They've proven themselves irresponsible again and again.

I also completely support your choice to not have to share a work day with that person. I know it sounds paradoxical.


We had many a tense discussion/argument prior to the war, last year. He believed Russia was right to take Crimea. I, for obviously reasons, disagree. As it became clearer that Russia was preparing to invade, he brought it up a few times. I honestly didn’t want to talk about it with him. Too stressful, I’d rather focus on my work than on his family members killing my extended family.


I would much rather setup an unskippable video of some horrible war brutality.

Ok, harder to do, but your current setup is probably making things worse, not better, you confirm to every neutral Russian the propaganda line that the world is against them for simply being Russians.


> you confirm to every neutral Russian that the world is against them for simply being Russians

Occam'ed your passage.


Is Occam weird slang for strawman?


Ah, the irony of looking for a strawman in the thread where the person outright blocks people by their nationality. But of course it's just a propaganda, sure.


The propaganda is that the world has something against Russia and wants to destroy it.

The anti-Russian bias these days is very real, but is caused by the fact that Russian people overwhelmingly support a brutal war of aggression. It's exactly what happened to the Americans in the arab world in the wake of the Iraq invasion. In the case of Putin's masacre, it's the whole western world that roots with Ukraine.


> but is caused by the fact that Russian people overwhelmingly support a brutal war of aggression

So the best thing to do is to alienate those who don't, "the beatings will continue until morale improves".

It was just a propaganda before, but now almost every Russian can see and feel what it is not just a propaganda.


Unlike other replies I don't see why you shouldn't block Russian IPs if that's a message you want to send. Which other regimes are you currently sending similar messages to, out of curiosity?


If your country re-elected George Bush in a free and fair election after he invaded a country illegally on false pretenses, what makes you expect the Russian people to risk their lives to get rid of Putin?


1) George W Bush lost the popular vote in his first election. A conservative Supreme Court shut down a reasonable legal challenge in a Florida state court.

2) It is a ton easier for an incumbent president to get reelected in this country.


> re-elected George Bush in a free and fair election

That's a bit of a stretch.


Motivate a disaffected populace to topple their dictator.


I was unhappy when my dictator trampled my rights, destroyed all the freedoms we used to have, and launched an unprovoked war against a neighbor.

But boy, when I can't read an article on a 50 year old shift register memory, NOW is the time for action!


The Russian people have been watching this happen for 20 years have have become complacent. Nobody stopped the czar from extending term limits that are supposed to prevent this sort of power grab from happening.


Despite 200 years of institutions intended to prevent it, the U.S. was barely able to eject an authoritarian-curious demagogue, only succeeding thanks to a global pandemic changing just enough voters’ minds, and the courage of Capitol police.

I’m more sympathetic to Russians being unable to rid themselves of a tyrant than I would have been 10 years ago, although not at all sympathetic to their active support of him and his genocidal war, constant drumbeat of propaganda or no.


> There was a blog I couldn't read, so that's it, I grabbed my AK-47 and went down to Moscow to shoot Putin!!


> Update: So I went there with my friend Ivan, and we got into a firefight with police. We got shot up pretty hard before we could even get a shot off ourselves. As I lay there dying, all I could think about was how the Apple 1's bit shift register worked -- I wished I knew! Damn you, Putin!!


Because you personally invaded Ukraine /s


The majority of this article's audience in Russia is unlikely to support both this war and Putin's entire rule. The IT workers are the most westernized part of Russia's society.


[flagged]


>Other countries got mad because this time the population of the country Russia invaded was white

This is one of the weirdest memes around at the moment. Are they more white than Chechens? Literal Caucasians who are close enough to Ukraine for refugees to end up there? According to the US government's standard categories, people in Syria are white too. And Palestinians.


I think people read too much into the "White" part of the argument, but I is interesting how this specific conflict has caught the attention the western world.


What was the pretense?


Nazis.


I thought it was threat of NATO expansion to Ukraine.


I thought it was “Ukraine has always been Russia and it was wrongly separated from Russia by Lenin and then later added to from Russian territory by Stalin”? (Actually, it's been all of the above, plus a few more.)


I didn't hear that as the pretense for invasion either. As far as I heard the "red line" was always related to NATO (and maybe lesser extent to ethnic Russian treatment in the rebel areas).


> I didn't hear that as the pretense for invasion either.

Then you didn't read the translation of Putin’s speech announcing the invasion, or any of many other things not targeted by the Russian government primarily at Western audiences.


https://www.bloomberg.com/news/articles/2022-02-24/full-tran...

This one? I have. NATO is clearly singled out as the red line which triggered the invasion. He says a lot of other stuff including references to historic events, but those weren't the trigger for the 2022 invasion. I don't see how they could be called a pretense for it when he said the red line was something different.


I only block things on my site that specifically help Putin. Which is no things.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: