00:00:00
Привет народ это второе видео про Мой
00:00:02
первый компьютер Искра 1080 Тарту
00:00:05
Сегодня я буду подключать принтер звучит
00:00:08
так просто и банально но я чувствую что
00:00:10
нас ждёт целое
00:00:11
Приключение принтер подключается к лпт
00:00:14
порту к разъёму db-25 я его подключал к
00:00:17
современному компьютеру через переходник
00:00:19
USB на lpt принтер сразу заработал Хотя
00:00:22
компьютер и принтер разделяют 30 лет
00:00:24
эволюции видео есть на моём канале на
00:00:26
искре 1080 такого разъёма нет Надо
00:00:29
почитать руководство по эксплуатации там
00:00:31
обязательно должна быть инструкция по
00:00:33
подключению принтера настоящего
00:00:35
руководства У меня нет есть только сканы
00:00:37
и действительно пункт 613 для
00:00:40
подключения печатающего устройства к
00:00:42
интерфейсу пользователя X2 необходимо
00:00:44
потребителю изготовить кабель в
00:00:46
соответствии с приведённым рисунком 4
00:00:49
жгут распаять на Розетку СНП бла-бла-бла
00:00:51
проводом бла-бла-бла длиной не менее 1
00:00:54
МТ в соответствии с таблицей 2
00:00:56
приложение 4 настоящего руководства
00:00:59
табли д в приложении 4 печально но у
00:01:02
меня нет скана этой страницы Но ничего
00:01:04
страшного разберёмся меня больше пугает
00:01:06
предложение ниже для работы с печатающим
00:01:09
устройством пользователь должен
00:01:11
составить свою программу осуществляющую
00:01:13
вывод информации на печать Давайте
00:01:16
проведём один эксперимент с принтером я
00:01:18
вам покажу насколько простой у него
00:01:20
Интерфейс это провод для подключения
00:01:22
принтера с одной стороны он подключается
00:01:24
к принтеру а с другой к разъёму db-25
00:01:27
нам потребуется ответный разъём db-25
00:01:30
нам потребуется кнопка при её нажатии
00:01:32
принтер будет печатать символ нам
00:01:34
потребуется вот такой переключатель для
00:01:36
выбора кода символа точнее два
00:01:38
переключателя так как код символа
00:01:41
восьмибитный не жалко их паять поэтому
00:01:43
мы возьмём ещё
00:01:45
панельки и всё это надо будет спаять
00:01:48
проводами первый контакт лпт порта
00:01:51
называется строп если замкнуть его на
00:01:53
землю то принтер напечатает символ
00:01:55
следующие восемь контактов выбирают код
00:01:58
символа который будет напечатан на
00:02:00
нескольких последних контактах
00:02:02
Земля к первому проводу и земле
00:02:05
подпалила
00:02:08
кнопку вставляем переключатель в
00:02:12
панельку подпал восемь
00:02:16
проводов и Ко вторым контактам
00:02:18
переключателя подпалил землю всё готово
00:02:21
эта кнопка печати
00:02:23
символа это выбора кода символа выберем
00:02:26
код
00:02:27
00111 это будет символ с кодом 240 что
00:02:31
это за символ Я пока сам не
00:02:36
знаю вставляем
00:02:42
бумажку теперь Нажимаю кнопочку и
00:02:45
принтер что-то
00:02:47
напечатал букву ё напечатало сразу три
00:02:50
буквы ё из-за дребезга кнопки Пусть
00:02:52
будет так сейчас нам это не мешает
00:02:54
Давайте включим пятый бит это будет
00:02:57
символ с кодом 224
00:03:00
нажимаем на
00:03:03
кнопку буква Р чтобы напечатать букву С
00:03:07
нужно код увеличить на
00:03:11
[музыка]
00:03:16
единицу буква
00:03:22
с буква Т Давайте напечатаем Ноль это
00:03:27
код символа 48 или шестой бит
00:03:30
установлены а остальные
00:03:38
сброшены напечатал ноль Отлично вот так
00:03:42
всё просто было у принтеров на разъёме
00:03:44
принтер есть ещё один обязательный
00:03:46
сигнал с помощью него принтер сообщает
00:03:48
компьютеру что готов принимать следующий
00:03:50
символ работает Это как теннис сначала
00:03:53
компьютер подаёт Импульс на провод вот
00:03:55
символ затем принтер подаёт Импульс на
00:03:58
свой провод принято затем компьютер
00:04:00
подаёт импульс Вот ещё символ затем
00:04:02
принтер подаёт импульс и так друг за
00:04:05
другом таким образом устанавливается
00:04:07
максимально возможная скорость передачи
00:04:09
для принтера и компьютера тест печати
00:04:11
Искры 1080 зависает потому что ждёт тот
00:04:14
самый импульс от принтера в разъёме пт
00:04:17
есть и другие контакты но они не
00:04:19
обязательны для работы это Например
00:04:21
сигналы нет бумаги принтер сломался
00:04:24
сброс принтера на них пока забьём
00:04:26
Давайте поищем на схеме компьютера Куда
00:04:29
подключается принте может быть сразу
00:04:31
станет всё ясно У меня есть схема
00:04:33
компьютера схема Вот такая страшная
00:04:35
местами нечитаемая я обвёл схему в
00:04:38
векторном редакторе и она стала чуть
00:04:43
красивее вот нарисован боковой разъём на
00:04:46
этом разъёме есть восемь выходных
00:04:48
контактов од скорее всего это сокращение
00:04:51
от output Data то что контакты выходные
00:04:53
я понял потому что они подключены к
00:04:55
правой стороне
00:04:57
микросхемы е это м есть четыре контакта
00:05:00
ц вероятность сокращения от Ctrl что-то
00:05:03
там эти контакты подключены к выходу
00:05:05
микросхемы 555 l13 ещё есть 15 входных
00:05:09
контактов ID скорее всего это сокращение
00:05:12
от Input Data они подключены ко входам
00:05:14
мультиплексе с левой стороны микросхемы
00:05:17
Давайте запишем зарисуй Итого
00:05:19
управляющий выход подключается к одному
00:05:21
из четырёх контактов ц восемь линий
00:05:24
данных от принтера скорее всего
00:05:25
подключаются к контактам од управляющий
00:05:28
вход подключается к к одному из
00:05:30
пятнадцати контактов
00:05:32
ID Давайте загрузим и запустим тест
00:05:35
принтера И посмотрим с помощью
00:05:37
логического анализатора Какие сигналы
00:05:40
тест Выводит на этот
00:05:42
разъём на восьми линиях данных должен
00:05:45
быть код символа
00:05:50
и Но тут нет ничего Давайте поищем
00:05:54
управляющий Импульс на контактах ц1 2 3
00:05:56
4
00:06:08
его тоже нет почему у нас на контактах
00:06:11
тишина может быть принтер вообще не сюда
00:06:13
подключается я ещё полистал руководство
00:06:16
пользователя в книге программное
00:06:18
обеспечение на странице 81 есть ещё
00:06:21
информация про принтер адрес функции
00:06:23
вывода символа на печатающее устройство
00:06:25
fd5 Это адрес под программы в ПЗУ
00:06:28
компьютера можно сказать что это BS
00:06:30
капец плохое решение предлагать
00:06:32
программистам напрямую вызывать
00:06:33
подпрограммы из ПЗУ в следующей версии
00:06:35
компьютера ПЗУ может измениться
00:06:37
изменятся адреса всех функций и
00:06:39
совместимость
00:06:40
потеряется Давайте посмотрим использует
00:06:43
ли тест печати на принтере функцию FD C5
00:06:46
останавливаем тест вводим 100l чтобы
00:06:49
посмотреть программу это главная функция
00:06:52
программы так сказать
00:06:54
Main вводим L для продолжения
00:07:00
вот смотрите тут выполняется сравнение
00:07:03
какого-то значения с числами от 31 до 36
00:07:06
это коды клавиш от одного до шести а
00:07:09
затем выбор одной из подпрограмм
00:07:11
Вероятно это шесть тестов указанные на
00:07:13
главном экране проверим шестой вариант
00:07:16
просто запустим под программу по адресу
00:07:18
е00 да сразу запустился тест печати нас
00:07:22
интересует только этот тест поэтому
00:07:24
продолжим просматривать программу с
00:07:25
адреса е00 вводим е00 А вот три вызова
00:07:29
функции FD C5 удалим вызовы функции FD
00:07:32
C5 из программы то есть заменим вызовы
00:07:34
функции FD C5 пустыми
00:07:38
операциями смотрим дальше надо похвалить
00:07:41
программистов Искры 1080 Я только в
00:07:43
искре видел мле встроенный в монитор и
00:07:46
это очень удобно тут Ещё два вызова
00:07:48
функции FD C5 адрес e7c записать
00:07:53
0000 адрес е80 записать
00:07:57
0000 смотрим дальше
00:08:00
программа закончилась Давайте попробуем
00:08:02
запустить этот тест что у нас
00:08:08
получилось тест не завис Это потому что
00:08:11
больше к принтеру он не обращается
00:08:13
Теперь мы точно знаем что на все вопросы
00:08:15
нам ответит функция FD C5 Давайте её
00:08:19
[музыка]
00:08:20
смотреть функция FD C5 вызывает функцию
00:08:24
по адресу
00:08:25
c96 смотрим адрес c96 и види
00:08:30
ничего Почему тут придётся сделать
00:08:33
небольшое отступление это адресное
00:08:36
пространство Искры 1080 арту вверху 12
00:08:39
КБ видеопамяти внизу 52 КБ для программ
00:08:43
пользователя это идеальная карта памяти
00:08:46
для компьютера с объёмом азу 64 КБ
00:08:49
потому что память программ непрерывна
00:08:51
начинается с нулевого адреса и ей не
00:08:53
мешают никакие ПЗУ скольких компьютеров
00:08:56
профукали этот момент Можно вспомнить
00:08:58
известное выражение 640 Кб хватит сем
00:09:01
тогда 30% адресного пространства PC
00:09:04
выкинули в мусор но я лучше поругать
00:09:06
разработчиков БК 0010 ZX spectrum
00:09:09
которые Разместили видеопамять по
00:09:11
смещению 4.000 посередине адресного
00:09:13
пространства своим решением они
00:09:15
поставили крест на возможности запускать
00:09:17
операционные системы CPM и rt1 а вместе
00:09:21
с ними все наработанные программы А там
00:09:23
были серьёзная программа языки
00:09:24
программирования Ладно вернёмся к искре
00:09:27
у нас в компьютере есть ещё ПЗУ
00:09:28
содержащие bas Basic монитор это ПЗУ
00:09:31
надо куда-то приткнуться авторы Искры
00:09:33
решили подключать ПЗУ только когда оно
00:09:35
нужно подключать вместо видеопамяти
00:09:38
чтобы программы из ПЗУ имели доступ ко
00:09:40
всей пользовательской памяти просто
00:09:42
идеальное решение Только способ
00:09:44
подключения и отключения ПЗУ
00:09:46
специфический ПЗУ 1 подключается при
00:09:49
попытке выполнить код в диапазоне
00:09:51
адресов от d00 до fff при этом возникает
00:09:55
проблема функции из pz 1 не имеют доступ
00:09:59
к видеопамяти видеопамять же отключена
00:10:01
поэтому ниже видеопамяти подключается
00:10:03
ещё одно ПЗУ в основном там размещены
00:10:06
графические функции ПЗУ 2 подключается
00:10:08
при попытке выполнить код в диапазоне
00:10:10
адресов от c800 до cff в этой же ПЗУ
00:10:14
находится функция печати на принтере
00:10:16
наша единственная Надежда прочитать ПЗУ
00:10:19
2 в том что в этой ПЗУ окажется функция
00:10:22
копирования памяти и мы сможем вызвать
00:10:24
эту функцию и она нам скопируют
00:10:25
содержимое ПЗУ 2 в Азу а там мы её уже
00:10:28
посмотрим а как нам узнать есть ли там
00:10:30
функция копирования и где она
00:10:32
расположена в ПЗУ 1 есть такая функция в
00:10:35
последних байтах ПЗУ вот она а вдруг в
00:10:38
последних байтах ПЗУ 2 есть такая же
00:10:41
функция Давайте попробуем напишем свою
00:10:43
программу которая задаст параметры для
00:10:45
функции копирования в регистр BC адрес
00:10:48
откуда копировать в регистр de адрес
00:10:51
докуда копировать тот же адрес п 100 в
00:10:54
регистр ал куда мы будем копировать это
00:10:57
выбор страницы ПЗУ я вас сразу не хотел
00:11:00
пугать мало того что ПЗУ отключаемый так
00:11:02
их ещё несколько вызов функции
00:11:04
копирования но мы ещё не знаем есть ли
00:11:06
она возвращаем ПЗУ назад конец программы
00:11:09
Теперь будем компилировать в уме первый
00:11:11
байт - это код операции посмотрим его в
00:11:14
справочнике остальные байты параметры
00:11:18
команды вводим программу в
00:11:27
компьютер проверяем
00:11:30
вроде бы не ошиблись смотрим Что сейчас
00:11:32
записано по адресу
00:11:35
200 запускаем нашу
00:11:38
программу мы не зависли Это уже хорошо
00:11:41
опять смотрим что записано по адресу 200
00:11:44
Бинго это функция печати на принтере она
00:11:46
делает следующее записывает символ в
00:11:49
порт BF ждёт пока второй бит в порту 99
00:11:53
равен нулю записывает символ в порт 88
00:11:57
записывает символ в порт FF ждёт пока
00:12:00
второй бит в порту 999 равен единице
00:12:02
записывает порт БФ Давайте посмотрим
00:12:05
схему выясним за что отвечают эти порты
00:12:07
ввода-вывода
00:12:10
когда выполняется команда BF на шине
00:12:13
адреса центрального процессора
00:12:15
появляется это же самое число БФ число
00:12:18
приходит на дешифратор который включает
00:12:21
какой-то узел компьютера адрес БФ
00:12:24
устанавливает в ноль один Триггер в
00:12:26
микросхеме выше Триггер - это ячейка
00:12:28
памяти на о БИТ А всего в этой
00:12:30
микросхеме восемь триггеров адрес FF
00:12:33
устанавливает в единицу этот Триггер при
00:12:35
этом значение записанный в порт BF или
00:12:38
FF не используется важен только сам факт
00:12:41
записи или чтения чтение тоже меняет
00:12:44
состояние триггера выход этого триггера
00:12:46
через элемент и с открытым коллектором
00:12:48
подключен к контакту ц4 бокового разъёма
00:12:52
Это первый ответ контакт строп принтера
00:12:54
нужно подключить к контакту co4
00:12:56
компьютера Второй ответ линию 4 нужно
00:12:59
подтянуть резистором к питанию потому
00:13:01
что открытый коллектор второй вход этого
00:13:04
элемента и который можно назвать
00:13:06
разрешающим выведен на боковой разъём
00:13:09
если этот контакт не подключить к земле
00:13:11
то на контактах цу ничего не будет
00:13:13
третий ответ нужно соединить контакт уст
00:13:16
печать бокового разъёма с землёй Да
00:13:19
название контакта намекает посмотрим как
00:13:21
работает чтение из порта 99 дешифратор
00:13:25
включает пару мультиплексе в кп-1
00:13:27
которые передают сигнал с контак ID
00:13:30
бокового разъёма на шину данных
00:13:31
процессора программа печати проверяет
00:13:34
второй бит порта 99 Следовательно она
00:13:37
проверяет контакт ID 22 четвёртый ответ
00:13:40
сигнал бизи принтера надо подключить к
00:13:42
контакту ID 22 компьютера кстати эти
00:13:45
мультиплексе включаются и при записи в
00:13:47
пор 99 при этом возникает конфликт на
00:13:49
шине соединяются выходы двух цифровых
00:13:52
микросхем а Давайте проверим заодно
00:13:54
разберём компьютер а то как так-то снять
00:13:57
видео и ничего не разобрать
00:14:14
Это плата
00:14:18
компьютера тут Центральный процессор
00:14:20
кр580 VM 80А ниже микросхема кр580 ВК 38
00:14:26
Она позволяет работать с портами
00:14:28
ввода-вывода
00:14:29
прерывания а также усиливают шину данных
00:14:31
в центре платы установлены 10 однократно
00:14:34
программируемых ПЗУ по 2 КБ ниже стоят
00:14:37
восемь микросхем azu crr 565 ru 5D это
00:14:40
самая популярная микросхема азу для
00:14:42
подобных компьютеров тут не
00:14:51
впаять вот эти микросхема k555
00:14:54
кп1 для эксперимента нам потребуется
00:14:57
осцилограф
00:14:59
второй щуп подключаем к шине данных а
00:15:01
Первый щуп к сигналу включения кп-1 по
00:15:04
нему мы будем синхронизироваться землю
00:15:07
осциллографа Соединяем с землёй
00:15:08
компьютера причём в первую очередь а то
00:15:10
так можно осциллограф сжечь
00:15:12
включаем
00:15:15
компьютер голубой Сигнал - это шина
00:15:18
данных процессора вы видите моменты
00:15:20
когда сигнал пилообразный формы это
00:15:23
Когда шина данных никем не используется
00:15:24
и неспешно заряжается до уровня питания
00:15:27
через подтягивающий резистор теперь
00:15:29
осциллограф ждёт Импульс на ножке
00:15:31
включения мультиплексе прочитаем из
00:15:34
порта 99 Это команда 99i осциллограф
00:15:38
захватил сигнал жёлтым нарисован сигнал
00:15:40
включения мультиплексора голубым шина
00:15:42
данных всё отлично мультиплексор прижал
00:15:45
шину данных к земле опять взводить
00:15:47
осциллограф следующий эксперимент
00:15:49
Запишем в порт 99 значение
00:15:55
0 картинка примерно такая же шина данных
00:15:58
в нуле но нем
00:15:59
дольше опять вводим осцилограф теперь
00:16:02
провокационный эксперимент Запишем в
00:16:04
порт 99 значение
00:16:08
FF смотрите на
00:16:11
логран Сейчас две микросхемы пытаются
00:16:14
установить противоположный сигнал Я
00:16:16
надеялся что ступенька будет посередине
00:16:18
но выходные токи логического нуля и
00:16:20
единицы разные микросхема ВК 38 пытается
00:16:24
установить логическую единицу А
00:16:26
мультиплексе кп-1 пытается установить но
00:16:29
это не фатально но и нехорошо интересно
00:16:31
авторы сознательно ради экономии пошли
00:16:34
на такой шаг либо просто плохо проверяли
00:16:36
Давайте дальше смотреть как работает
00:16:38
запись пор 88 теперь дешифратор подаёт
00:16:42
сигнал на этот регистр на его вход
00:16:44
записи шина данных процессора подключена
00:16:46
ко входу регистра а выход регистра
00:16:48
подключен к контактом од бокового
00:16:50
разъёма то есть данные записанные в порт
00:16:53
88 оказываются на контактах од бокового
00:16:56
разъёма пятый ответ контакты дата
00:16:59
принтера подключаются к контактам од
00:17:01
компьютера но постойте мы же смотрели
00:17:04
логическим анализатором сигналы на этих
00:17:06
контактах А дело в том что включение
00:17:08
выхода этого регистра тоже выведено на
00:17:11
разъём шестой ответ надо соединить
00:17:13
контакт zg1 компьютера с землёй Давайте
00:17:17
зарисуй и будем
00:17:20
паять это тоже макет а не конечная плата
00:17:24
в итоге я сделаю плату с множеством
00:17:25
разъёмов к боковому разъёму подключается
00:17:28
не только принтер но и джойстики
00:17:29
локальная сеть последовательный порт
00:17:31
мышь модем большой компьютер и так
00:17:34
далее провода в этот раз я возьму
00:17:36
получше
00:17:38
мктф наверное все знают что если подуть
00:17:41
феном на термоусадочную трубку то она
00:17:42
сожмётся
00:17:44
примерно На таком расстоянии будет
00:17:46
разъём
00:17:47
db-25 но нам ещё нужен подтягивающий
00:17:50
резистор для линии
00:17:56
co4 этот резистор будет возвращаться
00:17:59
этот же разм для резистора потребуется
00:18:01
трубка подлиннее
00:18:07
А это уже разъём д
00:18:12
б25 пропустим пайку десяти проводов Это
00:18:15
последнее место
00:18:17
пайки осталось только обжать всю
00:18:22
термоусадку Вот такая штука
00:18:25
получилась подключаю её к компьютеру
00:18:34
к ней
00:18:38
принтер
00:18:48
включаем как вам этот
00:18:50
звук загружаю тест Это займёт несколько
00:18:53
минут и вот настал Час X Сейчас будет
00:18:57
чудо
00:19:00
и что Да не произошло всё точно так же
00:19:03
как и раньше принтер светит индикатором
00:19:05
готов проверим сигнал строп Теперь мы
00:19:08
точно знаем что он управляется через
00:19:10
спорты FF и БФ вводим
00:19:14
FF ничего вводим
00:19:18
BF тоже ничего Как так вводим Fe - это
00:19:22
управление контактом
00:19:24
CO3 есть реакция Значит мы не туда
00:19:27
припоя
00:19:32
ищем контакт разъёма который управляется
00:19:34
через порт
00:19:37
FF это не
00:19:41
он а вот это он это Контакт номер
00:19:48
А2 перепаять
00:19:52
вот исправленная схема подключения
00:19:56
[музыка]
00:19:58
е
00:20:05
раз Ура оно визжит и
00:20:10
[музыка]
00:20:12
шевелится только печатает какую-то
00:20:16
ерунду я знаю что это когда мы смотрели
00:20:19
программу печати то я там видел команду
00:20:22
инвертирование всех бит кода символа то
00:20:24
есть нули заменяются на единички а
00:20:26
единички на нули это не страшно это один
00:20:28
из протоколов передачи и мой принтер его
00:20:30
поддерживает надо только переключить
00:20:36
микропереключатель попробуем ещё
00:20:47
раз Вероятно это кодировка ко и7 где все
00:20:50
английские буквы заменены на русские
00:20:52
только ещё строчные поменянные местами с
00:20:54
заглавными странно но это явно проблема
00:20:57
Не принтера а те
00:20:59
Будем считать что тест
00:21:01
пройден Давайте попробуем распечатать
00:21:03
текст из редактора для начала его введём
00:21:06
Как прошлый раз Однажды в студёную
00:21:09
зимнюю пору из Windows я вышел был
00:21:11
Нортон и
00:21:13
доз для печати нужно ввести #ка о а
00:21:17
затем п
00:21:30
Здорово даже русские буквы нормально
00:21:32
отображаются случайно в принтере
00:21:34
оказалась выбрана кодировка ГОСТ
00:21:36
Аналогично
00:21:37
компьютеру тут лишние пробелы это надо
00:21:40
отключить форматирование текстов
00:21:51
программ только что произошло
00:21:53
неординарное событие Я думаю что никто
00:21:56
из купивших искру в магазине включал к
00:21:58
ней принтер Давайте попробуем ещё из
00:22:01
Бесика напечатать программисты не
00:22:03
добавили в бейсик поддержку принтера
00:22:05
Поэтому придётся использовать
00:22:06
собственные подпрограммы в машинном коде
00:22:09
размещаем подпрограмму печати символа в
00:22:11
конце доступной памяти в этой
00:22:14
подпрограмме всего две команды записать
00:22:16
в регистр А код символа и вызвать под
00:22:18
программу печати в ПЗУ печатаете
00:22:21
находится в операторах Data программа
00:22:23
простая для каждого символа в Data
00:22:25
вызывается подпрограмма в машинных кодах
00:22:28
плюс Перенос строки
00:22:35
[музыка]
00:22:36
запускаем
00:22:39
[музыка]
00:22:40
работает всем пока С вами был Лёха