Итог

Ты собрал цветной плоттер и подключил его к компьютеру. Всё, что он умеет, — это несколько формул, и каждую ты вывел из того, что должна делать машина:

  • шаг по стрелке — LXS = CKL И (LEFT ИЛИ RIGHT): такт 60 Гц проходит к мотору, пока держишь стрелку;
  • перо — триггер-переключатель: D = НЕ Q, каждое нажатие PEN UP/DOWN переворачивает;
  • мотор револьвера — два триггера в кольце: AB → BC → CD → DA;
  • четверть оборота — 6 шагов на CD4017, перенос считает перья: CP1 CP0;
  • крутить, пока не совпало — MOVE = (C0 ⊕ CP0) ИЛИ (C1 ⊕ CP1);
  • перо вниз только на месте — PDN = PEN И НЕ BUSY, BUSY = MOVE ИЛИ MOVED;
  • наш адрес — «ни один из 14 бит не отличается»: SELP = НЕ (G1 ИЛИ G2 ИЛИ G3 ИЛИ G4);
  • кто управляет — CD4019: D = A·REMOTE + B·НЕ REMOTE.

А программа знает только три адреса: $C090 — шаги и перо, $C091 — концевики и BUSY, $C092 — цвет.

Apple ][RUN PLOTTERплата26 микросхем
Готово: компьютер, плата из 26 микросхем CMOS 4000 и плоттер с револьвером — рисует программой семь рисунков в четыре цвета.

Что дальше

  • Нарисуй свой рисунок: допиши в программу строки DATA на языке плоттера (P, C, M, L, E) и пункт меню.
  • Поменяй спирограф: другое отношение радиусов (4 * T / 3 в строках 2636 и 2640) — другой узор.
  • Ускорь револьвер: генератор CKT — 60 Гц вместо 10 (стол успеет? посмотри на BUSY).
  • Пятое перо не поместится — а почему цветов всего четыре? Посчитай биты в регистре $C092.