Наборы
›
Платёжная карта
RU
EN
ES
Содержание
Вступление
История: от картона до компьютера
Урок 0. Вентили из транзисторов: для тех, кто начинает с нуля
0.1. Идея: транзистор — выключатель
0.2. Сборка
0.3. Проверка
Вставка урока 0 (Cmd+I)
Урок 1. АЛУ и регистр A: калькулятор на тумблерах
1.1. Идея: одно действие за такт
1.2. Идея: один сумматор на четыре операции
1.3. Идея: флаги — память о результате
1.4. Сборка
1.5. Проверка
Вставка урока 1 (Cmd+I)
Урок 2. Счётчик команд и ПЗУ: огоньки по программе
2.1. Идея: программа — это список команд
2.2. Идея: переходы и подпрограмма
2.3. Сборка
2.4. Проверка
Вставка урока 2 (Cmd+I)
Урок 3. ОЗУ на защёлках: огонёк через память
3.1. Идея: адрес — в команде
3.2. Идея: защёлка пишет, пока открыта
3.3. Идея: память при включении — мусор
3.4. Сборка
3.5. Проверка
Вставка урока 3 (Cmd+I)
Урок 4. Циклы и условия: умножение повторным сложением
4.1. Идея: счётчик до нуля
4.2. Программа
4.3. Проверка
Урок 5. Провод IO и тестер карт: эхо
5.1. Идея: один провод на двоих
5.2. Идея: байт бит за битом
5.3. Идея: лампа «обмен — жди»
5.4. Сборка
5.5. Проверка
Вставка урока 5 (Cmd+I)
Урок 6. Личные данные и счётчик попыток: карта проверяет ПИН
6.1. Идея: личность — в транзисторах
6.2. Идея: попытки, которые не стираются
6.3. Сборка
6.4. Проверка
Вставка урока 6 (Cmd+I)
Урок 7. Программа карты: вызов-ответ
7.1. Идея: секрет, который не выходит наружу
7.2. Идея: длинный ответ — двумя командами
7.3. Программа
7.4. Проверка
Урок 8. Карта — в чип с 8 ногами
8.1. Идея: карта — это то, что внутри
8.2. Идея: две карты — одна программа
8.3. Сборка
8.4. Проверка
Вставка урока 8 (Cmd+I)
Итоги
Все детали
Инструкция в картинках
Урок 2 в картинках
← К уроку: Урок 2. Счётчик команд и ПЗУ: огоньки по программе
2
Счётчик команд и ПЗУ
процессор сам шагает по программе
kh
HT-01
8b
5
pc
LD #32
ROM[5]
IN
5×
OUT
3×
XOR
1×
0
AND
13×
0
OR
3×
0
Hz
1×
ROM
256×16
1×
NOT
3×
0
MUX2
24×
1
DFF
8×
1
RBIT
8×
1
4b
0
A
1×
8×
∞
Ctrl
+
G
HA
OR3
© 2026 Даниил Ханин · khanin.info · HT-01
39
ХОЛСТ
HA
1
Delete
CLK
0
ir12
0
ir13
0
ir14
0
ir15
0
bv0
0
bv1
0
bv2
0
bv3
0
bv4
0
bv5
0
bv6
0
bv7
2
IN
2×
OUT
2×
XOR
1×
0
AND
1×
0
6×
A
B
S
C
XOR
I0
A
I1
B
O0
S
AND
I0
A
I1
B
O0
C
© 2026 Даниил Ханин · khanin.info · HT-01
40
HA …
OR3
3
Ctrl
+
G
Library
…
Chip N
2×
Library
…
HA
Enter
HA
A
B
S
C
4
IN
3×
OUT
1×
OR
2×
0
6×
A
B
C
Y
OR
I0
A
I1
B
O0
ab
OR
I0
ab
I1
C
O0
Y
© 2026 Даниил Ханин · khanin.info · HT-01
41
OR3 …
ХОЛСТ
5
Ctrl
+
G
Library
…
Chip N
2×
Library
…
OR3
Enter
OR3
A
B
C
Y
6
Hz
1×
1×
2Hz
CLK
7
Memory (RAM) → ⚙: 256 words · 16b data · 16b addr · CLR выкл
8
ноги A8–A15, WE, CLK, D0–D15 — на GND: в ПЗУ не пишут
9
ноги подряд — одной строкой: A0–A7 → pc0…pc7 значит A0 → pc0, A1 → pc1 … A7 → pc7
© 2026 Даниил Ханин · khanin.info · HT-01
42
ХОЛСТ …
10
ROM
256×16
1×
50×
Memory (RAM)
A0–A7
pc0…pc7
A8–A15
GND
WE
GND
CLK
GND
D0–D15
GND
Q0–Q15
ir0…ir15
11
NOT
1×
0
HA
2×
10×
NOT
I0
pc0
O0
inc0
HA
A
pc1
B
pc0
S
inc1
C
ic2
HA
A
pc2
B
ic2
S
inc2
C
ic3
12
HA
3×
12×
HA
A
pc3
B
ic3
S
inc3
C
ic4
HA
A
pc4
B
ic4
S
inc4
C
ic5
HA
A
pc5
B
ic5
S
inc5
C
ic6
© 2026 Даниил Ханин · khanin.info · HT-01
43
ХОЛСТ …
13
HA
2×
8×
HA
A
pc6
B
ic6
S
inc6
C
ic7
HA
A
pc7
B
ic7
S
inc7
C
ic8
14
NOT
2×
0
AND
1×
0
7×
NOT
I0
fZ
O0
nfZ
NOT
I0
fC
O0
nfC
AND
I0
oJZ
I1
fZ
O0
tJZ
15
AND
3×
0
9×
AND
I0
oJNZ
I1
nfZ
O0
tJNZ
AND
I0
oJC
I1
fC
O0
tJC
AND
I0
oJNC
I1
nfC
O0
tJNC
© 2026 Даниил Ханин · khanin.info · HT-01
44
ХОЛСТ …
16
OR3
2×
OR
1×
0
11×
OR3
A
oJMP
B
oCALL
C
tJZ
Y
j1
OR3
A
tJNZ
B
tJC
C
tJNC
Y
j2
OR
I0
j1
I1
j2
O0
jmp
17
MUX2
3×
1
12×
MUX2
A
inc0
B
ir0
S
jmp
Y
jn0
MUX2
A
inc1
B
ir1
S
jmp
Y
jn1
MUX2
A
inc2
B
ir2
S
jmp
Y
jn2
18
MUX2
3×
1
12×
MUX2
A
inc3
B
ir3
S
jmp
Y
jn3
MUX2
A
inc4
B
ir4
S
jmp
Y
jn4
MUX2
A
inc5
B
ir5
S
jmp
Y
jn5
© 2026 Даниил Ханин · khanin.info · HT-01
45
ХОЛСТ …
19
MUX2
3×
1
12×
MUX2
A
inc6
B
ir6
S
jmp
Y
jn6
MUX2
A
inc7
B
ir7
S
jmp
Y
jn7
MUX2
A
jn0
B
sk0
S
oRET
Y
nx0
20
MUX2
3×
1
12×
MUX2
A
jn1
B
sk1
S
oRET
Y
nx1
MUX2
A
jn2
B
sk2
S
oRET
Y
nx2
MUX2
A
jn3
B
sk3
S
oRET
Y
nx3
21
MUX2
3×
1
12×
MUX2
A
jn4
B
sk4
S
oRET
Y
nx4
MUX2
A
jn5
B
sk5
S
oRET
Y
nx5
MUX2
A
jn6
B
sk6
S
oRET
Y
nx6
© 2026 Даниил Ханин · khanin.info · HT-01
46
ХОЛСТ …
22
MUX2
1×
1
AND
2×
0
10×
MUX2
A
jn7
B
sk7
S
oRET
Y
nx7
AND
I0
nx0
I1
nR
O0
pd0
AND
I0
nx1
I1
nR
O0
pd1
23
AND
3×
0
9×
AND
I0
nx2
I1
nR
O0
pd2
AND
I0
nx3
I1
nR
O0
pd3
AND
I0
nx4
I1
nR
O0
pd4
24
AND
3×
0
9×
AND
I0
nx5
I1
nR
O0
pd5
AND
I0
nx6
I1
nR
O0
pd6
AND
I0
nx7
I1
nR
O0
pd7
© 2026 Даниил Ханин · khanin.info · HT-01
47
ХОЛСТ …
25
DFF
3×
1
9×
DFF
D
pd0
CLK
CLK
Q
pc0
nQ
DFF
D
pd1
CLK
CLK
Q
pc1
nQ
DFF
D
pd2
CLK
CLK
Q
pc2
nQ
26
DFF
3×
1
9×
DFF
D
pd3
CLK
CLK
Q
pc3
nQ
DFF
D
pd4
CLK
CLK
Q
pc4
nQ
DFF
D
pd5
CLK
CLK
Q
pc5
nQ
27
DFF
2×
1
6×
DFF
D
pd6
CLK
CLK
Q
pc6
nQ
DFF
D
pd7
CLK
CLK
Q
pc7
nQ
© 2026 Даниил Ханин · khanin.info · HT-01
48
ХОЛСТ …
28
RBIT
2×
1
10×
RBIT
D
inc0
LD
oCALL
nR
nR
CLK
CLK
Q
sk0
RBIT
D
inc1
LD
oCALL
nR
nR
CLK
CLK
Q
sk1
29
RBIT
2×
1
10×
RBIT
D
inc2
LD
oCALL
nR
nR
CLK
CLK
Q
sk2
RBIT
D
inc3
LD
oCALL
nR
nR
CLK
CLK
Q
sk3
30
RBIT
2×
1
10×
RBIT
D
inc4
LD
oCALL
nR
nR
CLK
CLK
Q
sk4
RBIT
D
inc5
LD
oCALL
nR
nR
CLK
CLK
Q
sk5
© 2026 Даниил Ханин · khanin.info · HT-01
49
ХОЛСТ …
31
RBIT
2×
1
10×
RBIT
D
inc6
LD
oCALL
nR
nR
CLK
CLK
Q
sk6
RBIT
D
inc7
LD
oCALL
nR
nR
CLK
CLK
Q
sk7
32
MUX2
3×
1
12×
MUX2
A
din0
B
ir0
S
ir11
Y
bv0
MUX2
A
din1
B
ir1
S
ir11
Y
bv1
MUX2
A
din2
B
ir2
S
ir11
Y
bv2
33
MUX2
3×
1
12×
MUX2
A
din3
B
ir3
S
ir11
Y
bv3
MUX2
A
din4
B
ir4
S
ir11
Y
bv4
MUX2
A
din5
B
ir5
S
ir11
Y
bv5
© 2026 Даниил Ханин · khanin.info · HT-01
50
ХОЛСТ …
34
MUX2
2×
1
8×
MUX2
A
din6
B
ir6
S
ir11
Y
bv6
MUX2
A
din7
B
ir7
S
ir11
Y
bv7
35
4b
0
A
1×
4×
4×
8b
0
pc
acc7
acc6
acc5
acc4
36
4×
4×
acc3
acc2
acc1
acc0
37
ROM
256 × 16
Memory
⬆
⬇
0801 0802 0804
0808 0810 0820
0840 0880 E011
02-lights.rom.json
1
RST
1 → 0
8b
0
pc
8b
7
pc
8b
17
pc
© 2026 Даниил Ханин · khanin.info · HT-01
51
← К уроку
Урок 2. Счётчик команд и ПЗУ: огоньки по программе