导航的三件事
页头告诉你在哪,目录告诉你读到哪,抽屉在窄屏上替你省掉横向空间。 三件事看起来简单,做错都会让用户"点了个寂寞"。
Esc、点遮罩、点链接后关闭;② 滚动正文,看左侧目录是否跟着高亮;
③ 点页头的"存储器",看它是否标记为当前页。
存储器构成
AGC 的核心存储器是 2048 个 36 位字,总容量 73,728 位。指令与数据混在一起, 地址按字计。真正让人吃惊的是每位宇航员分到的 4 KB 重写区——那不是共享内存, 是每人一份。
换句话说:三个人可以各自在自己的 4 KB 里堆程序,哪怕会覆盖掉别人写的东西。 在那个年代这已经算是很大的宽容。
优先级与准入
AGC 的调度靠优先级抢占:更高优先级的任务可以打断低优先级的任务。 这套机制加上准入控制,让关键任务(姿态、点火)不会被普通计算饿死。
阿波罗 13 号在 33 万公里外反复报出的告警,就是这套机制在工作—— 它宁可一直报错,也不肯停机,因为停了机地面就失去了唯一的实时数据源。
把它跑起来
工具链的成熟度足以支撑一次完整考古:从反汇编、到逐指令模拟、到和原厂手册对照。 这条路走过一遍之后的结论是——手册里的描述与实现的实际行为在细节上有出入, 而正是这些出入最能说明当时的工程取舍。
目录高亮统一用 scroll 监听 + requestAnimationFrame 节流,
不依赖 IntersectionObserver。
早期版本用的是它 + rootMargin,结果滚到两节之间时观察区里
一个 section 都没有,高亮卡住不动 —— 现在改成纯计算,任何滚动位置都有答案。
对比:错写法 vs 本库写法
❌ 常见写法:目录项允许换行
一条目录折成两行,下面两条就都被推下去了 —— 目录的价值是"一眼看到全文结构",行高一变,结构感就没了。
✅ 本库:单行、超出省略
目录项单行、超出省略:宁可截断,也要保住"三条等高"的节奏。读者扫的是结构,不是一个条目的全名。