Наборы
›
Платёжная карта
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)
Итоги
Все детали
Инструкция в картинках
Урок 5 в картинках
← К уроку: Урок 5. Провод IO и тестер карт: эхо
5
Провод IO и тестер
байт бит за битом по одному проводу
kh
HT-01
CARD
TERM
start
stop
IO · 65
65 → карта → 66
AND
23×
0
RBIT
1×
1
N
2×
NOT
19×
0
1×
0
8×
Q
Q
1×
DFF
21×
1
OR
6×
0
AND3
5×
3
HA
7×
2
OR3
2×
2
AND4
5×
1
NOR
1×
0
MUX2
16×
1
9×
4b
0
A
1×
∞
© 2026 Даниил Ханин · khanin.info · HT-01
73
ХОЛСТ
1
MAX
1Hz
2Hz
10Hz
60Hz
4kHz
…
MAX
2
AND
1×
0
RBIT
1×
1
8×
AND
I0
oST
I1
selIO
O0
wOUT
RBIT
D
acc0
LD
wOUT
nR
nR
CLK
CLK
Q
pull
3
N
1×
3×
IO
GND
G
N
pull
4
NOT
1×
0
1×
N
1×
7×
NOT
I0
RST
O0
nRT
VCC
IO
IO
GND
G
N
TPULL
5
0
5×
5×
0
T0
0
T1
0
T2
0
T3
0
T4
© 2026 Даниил Ханин · khanin.info · HT-01
74
ХОЛСТ …
6
0
3×
Q
Q
1×
4×
0
T5
0
T6
0
T7
SEND
7
DFF
2×
1
NOT
1×
0
8×
DFF
D
SEND
CLK
CLK
Q
sendS
nQ
DFF
D
sendS
CLK
CLK
Q
sendP
nQ
NOT
I0
sendP
O0
nSendP
8
OR
1×
0
NOT
1×
0
AND3
1×
3
9×
OR
I0
TXB
I1
RXB
O0
busy
NOT
I0
busy
O0
idle
AND3
A
sendS
B
nSendP
C
free
Y
goTX
© 2026 Даниил Ханин · khanin.info · HT-01
75
ХОЛСТ …
9
NOT
1×
0
AND
1×
0
5×
NOT
I0
IO
O0
ioLow
AND
I0
ioLow
I1
idle
O0
goRX
10
HA
3×
2
12×
HA
A
cn1
B
cn0
S
ci1
C
cc2
HA
A
cn2
B
cc2
S
ci2
C
cc3
HA
A
cn3
B
cc3
S
ci3
C
cc4
11
HA
3×
2
12×
HA
A
cn4
B
cc4
S
ci4
C
cc5
HA
A
cn5
B
cc5
S
ci5
C
cc6
HA
A
cn6
B
cc6
S
ci6
C
cc7
© 2026 Даниил Ханин · khanin.info · HT-01
76
ХОЛСТ …
12
HA
1×
2
OR
1×
0
NOT
1×
0
9×
HA
A
cn7
B
cc7
S
ci7
C
cc8
OR
I0
busy
I1
WTB
O0
lamp
NOT
I0
lamp
O0
free
13
OR3
1×
2
NOT
1×
0
AND3
1×
3
10×
OR3
A
eTX
B
eRX
C
goRX
Y
cz
NOT
I0
cz
O0
ncz
AND3
A
lamp
B
nRT
C
ncz
Y
cntOn
© 2026 Даниил Ханин · khanin.info · HT-01
77
ХОЛСТ …
14
AND
3×
0
9×
AND
I0
nc0
I1
cntOn
O0
cd0
AND
I0
ci1
I1
cntOn
O0
cd1
AND
I0
ci2
I1
cntOn
O0
cd2
15
AND
3×
0
9×
AND
I0
ci3
I1
cntOn
O0
cd3
AND
I0
ci4
I1
cntOn
O0
cd4
AND
I0
ci5
I1
cntOn
O0
cd5
16
AND
2×
0
DFF
1×
1
9×
AND
I0
ci6
I1
cntOn
O0
cd6
AND
I0
ci7
I1
cntOn
O0
cd7
DFF
D
cd0
CLK
CLK
Q
cn0
nQ
© 2026 Даниил Ханин · khanin.info · HT-01
78
ХОЛСТ …
17
DFF
3×
1
9×
DFF
D
cd1
CLK
CLK
Q
cn1
nQ
DFF
D
cd2
CLK
CLK
Q
cn2
nQ
DFF
D
cd3
CLK
CLK
Q
cn3
nQ
18
DFF
3×
1
9×
DFF
D
cd4
CLK
CLK
Q
cn4
nQ
DFF
D
cd5
CLK
CLK
Q
cn5
nQ
DFF
D
cd6
CLK
CLK
Q
cn6
nQ
19
DFF
1×
1
NOT
2×
0
7×
DFF
D
cd7
CLK
CLK
Q
cn7
nQ
NOT
I0
cn0
O0
nc0
NOT
I0
cn1
O0
nc1
20
NOT
3×
0
6×
NOT
I0
cn2
O0
nc2
NOT
I0
cn3
O0
nc3
NOT
I0
cn4
O0
nc4
© 2026 Даниил Ханин · khanin.info · HT-01
79
ХОЛСТ …
21
NOT
3×
0
6×
NOT
I0
cn5
O0
nc5
NOT
I0
cn6
O0
nc6
NOT
I0
cn7
O0
nc7
22
AND4
2×
1
10×
AND4
A
nc4
B
nc5
C
nc6
D
nc7
Y
ph0
AND4
A
cn4
B
nc5
C
nc6
D
cn7
Y
ph9
23
NOR
1×
0
AND4
1×
1
8×
NOR
I0
ph0
I1
ph9
O0
inData
AND4
A
cn0
B
cn1
C
cn2
D
cn3
Y
sub15
24
AND4
1×
1
AND
1×
0
8×
AND4
A
cn0
B
cn1
C
cn2
D
nc3
Y
sub7
AND
I0
ph9
I1
sub15
O0
endTX
© 2026 Даниил Ханин · khanin.info · HT-01
80
ХОЛСТ …
25
AND
1×
0
NOT
2×
0
7×
AND
I0
ph9
I1
sub7
O0
endRX
NOT
I0
endTX
O0
nEndTX
NOT
I0
endRX
O0
nEndRX
26
AND
2×
0
OR
1×
0
9×
AND
I0
TXB
I1
nEndTX
O0
txKeep
OR
I0
goTX
I1
txKeep
O0
txN
AND
I0
txN
I1
nRT
O0
txD
27
DFF
1×
1
AND
1×
0
OR
1×
0
9×
DFF
D
txD
CLK
CLK
Q
TXB
nQ
AND
I0
RXB
I1
nEndRX
O0
rxKeep
OR
I0
goRX
I1
rxKeep
O0
rxN
© 2026 Даниил Ханин · khanin.info · HT-01
81
ХОЛСТ …
28
AND
1×
0
DFF
1×
1
6×
AND
I0
rxN
I1
nRT
O0
rxD
DFF
D
rxD
CLK
CLK
Q
RXB
nQ
29
AND3
2×
3
OR
1×
0
11×
AND3
A
TXB
B
inData
C
sub15
Y
shTX
AND3
A
RXB
B
inData
C
sub7
Y
shRX
OR
I0
shTX
I1
shRX
O0
sh
30
AND
1×
0
MUX2
2×
1
11×
AND
I0
RXB
I1
IO
O0
bitIn
MUX2
A
sr0
B
bitIn
S
sh
Y
sa0
MUX2
A
sr1
B
sr0
S
sh
Y
sa1
© 2026 Даниил Ханин · khanin.info · HT-01
82
ХОЛСТ …
31
MUX2
3×
1
12×
MUX2
A
sr2
B
sr1
S
sh
Y
sa2
MUX2
A
sr3
B
sr2
S
sh
Y
sa3
MUX2
A
sr4
B
sr3
S
sh
Y
sa4
32
MUX2
3×
1
12×
MUX2
A
sr5
B
sr4
S
sh
Y
sa5
MUX2
A
sr6
B
sr5
S
sh
Y
sa6
MUX2
A
sr7
B
sr6
S
sh
Y
sa7
33
MUX2
3×
1
12×
MUX2
A
sa0
B
T0
S
goTX
Y
sb0
MUX2
A
sa1
B
T1
S
goTX
Y
sb1
MUX2
A
sa2
B
T2
S
goTX
Y
sb2
© 2026 Даниил Ханин · khanin.info · HT-01
83
ХОЛСТ …
34
MUX2
3×
1
12×
MUX2
A
sa3
B
T3
S
goTX
Y
sb3
MUX2
A
sa4
B
T4
S
goTX
Y
sb4
MUX2
A
sa5
B
T5
S
goTX
Y
sb5
35
MUX2
2×
1
DFF
1×
1
11×
MUX2
A
sa6
B
T6
S
goTX
Y
sb6
MUX2
A
sa7
B
T7
S
goTX
Y
sb7
DFF
D
sb0
CLK
CLK
Q
sr0
nQ
36
DFF
3×
1
9×
DFF
D
sb1
CLK
CLK
Q
sr1
nQ
DFF
D
sb2
CLK
CLK
Q
sr2
nQ
DFF
D
sb3
CLK
CLK
Q
sr3
nQ
© 2026 Даниил Ханин · khanin.info · HT-01
84
ХОЛСТ …
37
DFF
3×
1
9×
DFF
D
sb4
CLK
CLK
Q
sr4
nQ
DFF
D
sb5
CLK
CLK
Q
sr5
nQ
DFF
D
sb6
CLK
CLK
Q
sr6
nQ
38
DFF
1×
1
3×
DFF
D
sb7
CLK
CLK
Q
sr7
nQ
39
NOT
1×
0
AND
1×
0
OR
1×
0
8×
NOT
I0
sr7
O0
nsr7
AND
I0
inData
I1
nsr7
O0
d0
OR
I0
ph0
I1
d0
O0
pl
© 2026 Даниил Ханин · khanin.info · HT-01
85
ХОЛСТ …
40
AND
1×
0
3×
6×
AND
I0
TXB
I1
pl
O0
TPULL
sr7
sr6
sr5
41
5×
5×
sr4
sr3
sr2
sr1
sr0
42
4b
0
A
1×
8b
0
sr
43
AND
2×
0
6×
AND
I0
TXB
I1
endTX
O0
eTX
AND
I0
RXB
I1
endRX
O0
eRX
© 2026 Даниил Ханин · khanin.info · HT-01
86
ХОЛСТ …
44
AND4
1×
1
AND
1×
0
8×
AND4
A
cn4
B
cn5
C
cn6
D
cn7
Y
hi15
AND
I0
sub15
I1
hi15
O0
c255
45
NOT
1×
0
AND
1×
0
OR3
1×
2
9×
NOT
I0
c255
O0
nc255
AND
I0
WTB
I1
nc255
O0
wKeep
OR3
A
eTX
B
eRX
C
wKeep
Y
wN
46
NOT
1×
0
AND3
1×
3
DFF
1×
1
9×
NOT
I0
goRX
O0
nGoRX
AND3
A
wN
B
nGoRX
C
nRT
Y
wD
DFF
D
wD
CLK
CLK
Q
WTB
nQ
© 2026 Даниил Ханин · khanin.info · HT-01
87
ХОЛСТ …
47
1×
1×
lamp
48
ROM
256 × 16
Memory
⬆
⬇
0801 0802 0804
0808 0810 0820
0840 0880 E011
05-echo.rom.json
1
RST
1 → 0
—
0
T7
1
T6
0
T5
0
T4
0
T3
0
T2
0
T1
1
T0
0100 0001 $41
SEND
SEND
lamp
66
65 + 1
1
T7
1
T6
1
T5
1
T4
1
T3
1
T2
1
T1
1
T0
1111 1111 $FF
SEND
SEND
lamp
0
255 + 1 = 0
© 2026 Даниил Ханин · khanin.info · HT-01
88
← К уроку
Урок 5. Провод IO и тестер карт: эхо