PDA

Просмотр полной версии : Загрузчик 32 Кб, TimSoft - 0-модемное соединение с IBM PC



AlexBel
25.09.2019, 10:46
Всем привет.

В числе устройств для загрузки в "Загрузчик «Вектор-06ц» (32 Кб, TimSoft) (http://www.sensi.org/scalar/ware/541/)" присутствует "0-модемное соединение с IBM PC (далее РС) через порты ПУ-LPT"
Информацию по этому соединению найти, пока что, не удалось. Поясните, пожалуйста, что это за соединение?
Кроме того, упоминается "сетевой адаптер" - интересно узнать о нём тоже.

С уважением, Алексей.

KTSerg
25.09.2019, 12:00
По 0-модему. Это соединение ПУ Вектора и LPT PC, просто проводами. Передается/принимается параллельно 4 Бита. Ни чего сложного.
По сетевому адаптеру, протокол сложнее. Смотри в темах мои сообщения и тему по адаптер-ЛВС. Я даже железку (новодел) делал и исходники к ней выкладывал.
Алгоритмы можно вырезать из исходников (с описаниями) загрузчиков, благо они в открытом доступе.

Есть протоколы вынесенные в отдельные модули для 0-модема и ЛВС, которые я использовал для своих мульти-интерфейсных девайсиков, подключаемых к ПУ Вектора. Если нужно, посмотрю на предмет внятности комментариев и могу выложить.

Кстати, раз тема про 0-модемное соединение, то вопрос: а софт для РС был, шоб с РС в Вектор программки грузить?

AlexBel
25.09.2019, 15:33
По 0-модему. Это соединение ПУ Вектора и LPT PC, просто проводами. Передается/принимается параллельно 4 Бита. Ни чего сложного.
По сетевому адаптеру, протокол сложнее. Смотри в темах мои сообщения и тему по адаптер-ЛВС. Я даже железку (новодел) делал и исходники к ней выкладывал.
Алгоритмы можно вырезать из исходников (с описаниями) загрузчиков, благо они в открытом доступе.

Есть протоколы вынесенные в отдельные модули для 0-модема и ЛВС, которые я использовал для своих мульти-интерфейсных девайсиков, подключаемых к ПУ Вектора. Если нужно, посмотрю на предмет внятности комментариев и могу выложить.

Кстати, раз тема про 0-модемное соединение, то вопрос: а софт для РС был, шоб с РС в Вектор программки грузить?

Вот, что сказано в описании прошивки: "Для поддержки 0-модемного соединения необходимо использовать программу "0modem", последнюю версию которой можно получить по адресу: http://vector06c.narod.ru"
Содержимое сайта этому явно не соответствует, видимо, за давностью.
Я интересуюсь потому, что, после ремонта "Вектора", хочу организовать возможность оперативной передачи данных между ним и РС. Современные компьютеры и ОС не имеют LPT, но, имея алгоритм работы этого соединения, можно реализовать обмен, используя USB-адаптеры, скажем, FT245. Сетевой адаптер интересует только, так сказать, для общего образования, делать его я, пока что, не планирую.
А исходники 0-модемного загрузчика есть в открытом доступе? Скажу честно, я их не искал и глубоко, пока что, эту тему не копал. Если укажешь, где можно посмотреть описание 0-модемного загрузчика, буду благодарен.

KTSerg
25.09.2019, 18:25
Прикреплю модуль 0-модема. Он для девайса на процессоре LPC2146, но должно быть всё понятно.
Основная программа считывает файл блоками по 256 байт с SD-карты и вызывает функцию TO_LPT() для отправки в Вектор, используя протокол 0-модема.

Да, ещё "Key_Stop" определяется в другом месте, это макрос проверки состояния кнопки, для аварийного прекращения ожидания ответа Вектора.

Увидел, что в модуле нет описания соответствия портов девайса и Вектора.
lpt_read/lpt_busy - это "4" бит порта "С" на "ПУ".
Полубайт данных подается на биты 0-3 порта "В" на "ПУ".
При выводе полубайта на шину, девайс одновременно выставляет "1" в бит "21" своего "P1" - это соответственно бит "5" порта "B" на "ПУ".

KTSerg
26.09.2019, 05:32
Если прогу 0modem писать заново, то доступ к LPT-порту через "хитрый" драйвер?
Винда ведь просто так к портам не пустит. А в свежих виндах LPT-драйвер работает?
По нынешним временам, проще собрать что-то подключаемое к USB по HID или VirtualCOM интерфейсам.
А некоторые (я так думаю) вполне могут и для СинеЗуба софт подправить, и сделать из него "ногодрыгалку". Там надо-то всего 6 ног (5 дёргать, 1-ну слушать). И тогда получится (в одну сторону) но соединение Вектора и РС "по воздуху". :)

AlexBel
26.09.2019, 05:39
Дык, я потому и написал про FT245 - она на выходе даёт параллельный код. А можно и для контроллера с USB написать прошивку (https://ru.aliexpress.com/item/32838090315.html?spm=a2g0o.productlist.0.0.12a37b8 19OPe9W&algo_pvid=0b38f238-a38f-4626-a5c5-9cf2ea666725&algo_expid=0b38f238-a38f-4626-a5c5-9cf2ea666725-1&btsid=4c16404d-f755-4942-be6b-c6db518f6114&ws_ab_test=searchweb0_0,searchweb201602_8,searchwe b201603_52).
Соединение по воздуху, конечно, хорошо, но, думаю, реально оно не особо нужно - "Вектор", всё же, не мобильное устройство и +1 не самый толстый провод не помешает. Но соединение, думаю, должно быть двусторонним, иначе теряется много полезного функционала. Хотя, здесь уже вопрос того, что умеет загрузчик 0-модема в ПЗУ...

KTSerg
26.09.2019, 05:48
Дык, я потому и написал про FT245 - она на выходе даёт параллельный код. А можно и для контроллера с USB написать прошивку (https://ru.aliexpress.com/item/32838090315.html?spm=a2g0o.productlist.0.0.12a37b8 19OPe9W&algo_pvid=0b38f238-a38f-4626-a5c5-9cf2ea666725&algo_expid=0b38f238-a38f-4626-a5c5-9cf2ea666725-1&btsid=4c16404d-f755-4942-be6b-c6db518f6114&ws_ab_test=searchweb0_0,searchweb201602_8,searchwe b201603_52).
Соединение по воздуху, конечно, хорошо, но, думаю, реально оно не особо нужно - "Вектор", всё же, не мобильное устройство и +1 не самый толстый провод не помешает. Но соединение, думаю, должно быть двусторонним, иначе теряется много полезного функционала. Хотя, здесь уже вопрос того, что умеет загрузчик 0-модема в ПЗУ...
Вот сейчас я именно занимаюсь изучением stm32F103, и переношу свой мульти-интерфуйсный девайс на него. На старом девайсе я подключал Вектор к РС через СинеЗуб. В некоторых случаях это удобно. Т.к. Вектор надо подцеплять к телику, от компа далеко, провода тянуть не хочется...
И делал загрузку с компа в Вектор сразу образа всего КвазиДиска. Удобно.

И ещё, 0-модем всётаки не универсальная функция загрузчика, т.к. в заводских вариантах его не было. А ЛВС в заводских загрузчиках есть, и он двунаправленный.

AlexBel
26.09.2019, 06:13
Я ещё плохо представляю, что именно может потребоваться для "Вектора" в плане коммуникаций - до сих пор у меня дружба с этой машинкой не складывалась. Сейчас занимаюсь восстановлением платы "Вектора", пострадавшего от набега искателей драгметаллов (зачем-то, кроме КМ, им потребовались ПЗУ, порт, кварц и 3 штуки 155ЛА3). Но так как, после ремонта, возможно продолжение отношений, хочу обзавестись подходящим инструментарием, как программным, так и аппаратным. Для начала можно грузиться через магнитофон, но удобнее, всё же, использовать более скоростные методы.
Вот, кстати - позволяет ли 0-модем загружать rom-файлы (игры и прочее) и запускать их? Какая распиновка со стороны "Вектора"? С какого адреса загрузчик загружает данные в память "Вектора"?
Пока что я представляю себе загрузку так же, как и магнитофонную - все блоки передались (адрес загрузки фиксированный, кажется, 0x0100), после чего нажимаем "БЛК-СБРОС" и загруженная программа стартует. Правильно? Т.е. через 0-модем можно просто гнать все те же rom-файлы, что и через магнитофон.

ЛВС для моих нужд избыточна - что с точки зрения интереса, что с точки зрения загрузки. По мне, так старая добрая SD-карта лучше. Я и когда для "Агата" создавал инструмент разработчика (http://forum.agatcomp.ru//viewtopic.php?pid=2770#p2770), в обязательном порядке включил в него SD-карту и RS-232. А сеть - неинтересно :)

KTSerg
26.09.2019, 06:28
... Пока что я представляю себе загрузку так же, как и магнитофонную - все блоки передались (адрес загрузки фиксированный, кажется, 0x0100), после чего нажимаем "БЛК-СБРОС" и загруженная программа стартует. Правильно? Т.е. через 0-модем можно просто гнать все те же rom-файлы, что и через магнитофон.

Я давно 0-модем интерфейс копал, но судя по тому файлу, что я выложил, поддерживает загрузку с любого блока. Номер блока для начала загрузки передается перед файлом. Потом идёт файл целиком, и заканчивается контрольной суммой файла.
Т.е. Можно грузить хоть rom, хоть r0m. Всё что угодно, с любого адреса (который нужен загружаемой программе, кратно 0х100). Главное, чтоб эту фишку передающий софт поддерживал.

AlexBel
26.09.2019, 06:38
Посмотрел исходник - да, для поиграться вполне можно слепить загружалку через 0-модем на ардурине за час и подключить несколькими проводками :)
Не увидел сперва, что в сообщении #4 есть распиновка подключения к ПЗУ...

Сейчас подумал - возможно, я поспешил насчёт сети и это более удобный и универсальный метод загрузки. Я по привычке подумал об всяких изернетах, вай-фай и IP-стеках, что, по мне, так и в самом деле избыточно для "Вектора".
Если есть возможность, дай, пожалуйста, описание по сети (железа и софта) для "Вектора". Или ссылку...

KTSerg
26.09.2019, 07:58
... Если есть возможность, дай, пожалуйста, описание по сети (железа и софта) для "Вектора". Или ссылку...
Вот тут начало, и далее по теме.
https://zx-pk.ru/threads/8669-vektor-06ts-zhelezo.html?p=713864&viewfull=1#post713864

- - - Добавлено - - -


... Cейчас подумал - возможно, я поспешил насчёт сети и это более удобный и универсальный метод загрузки....
Я уже давно приостановил (временно) идею подключения Вектора к РС для загрузки программ. Т.к. было интересно разобраться с подключением SD-карты. И на данный момент все последние девайсы, грузили проги в Вектор с SD-карты, используя разные протоколы: Магнитофон, ПЗУ, 0-модем, ЛВС. На основе протокола ЛВС, Вектор становится терминалом для выбора программы которую нужно загрузить с SD-карты. Т.е. в Вектор загружается программа мини версия "Проводника" и можно работать с каталогом фалов SD-карты.
Надеялся в дальнейшем, к готовой системе добавить соединение с РС, так-же разными способами.

AlexBel
26.09.2019, 08:34
Я уже давно приостановил (временно) идею подключения Вектора к РС для загрузки программ. Т.к. было интересно разобраться с подключением SD-карты.

У меня аналогичное отношение к этому вопросу - такая загрузка интересует только на начальном этапе. Впрочем, для тестирования программ, написанных на РС, такой линк тоже весьма полезен. Собрал на РС программу, кинул её на иконку линкера, а уже он эту программу сам отправляет в "Вектор" по тому же 0-модему. Для этого особо крутых средств не надо.
Но если использовать на "Векторе" DOS, то тогда, конечно, потребуется полноценный накопитель. Правда, на настоящий момент я не очень представляю работу всего этого - нужно сперва железо привести в порядок. Я видел схему простого адаптера для IDE-дисков, если он поддержан DOS, то можно использовать хоть IDE, хоть SATA или SD через переходники на IDE. Хотя, если векторовский DOS является перекрашенной CP/M, то его возможно подружить и со своим накопителем.
После раздумья я уже сомневаюсь, что нужно использовать жирный 32к или 16к-загрузчик, вполне достаточно обычного 2-килобайтного. Конечно, хотелось бы иметь при включении, после ремонта, в ПЗУ тест, но он всё равно не запустится без клавиатуры...

KTSerg
26.09.2019, 08:41
... Конечно, хотелось бы иметь при включении, после ремонта, в ПЗУ тест, но он всё равно не запустится без клавиатуры...
Без клавиатуры, это только через магнитофонный вход, но тоже автостарт у Вектор должен быть. По умолчанию на Векторе, после загрузки программы, для её запуска нужно на клавиатуре кнопочки нажать.
А через магнитофон, тут в соседней ветке есть магнитофон для Вектора на Ардуино.
https://zx-pk.ru/threads/28819-rom-pleer-na-arduino.html

Давно свой девайс чисто по ЛВС не подключал (старый разобрал, новый не собрал), но Вектор вроде как при подключенном к ПУ контроллере ЛВС, сразу на загрузку с него переходит. А самый первый вариант по ссылке выше в коде именно Тест содержал.

AlexBel
26.09.2019, 08:48
А через магнитофон, тут в соседней ветке есть магнитофон для Вектора на Ардуино.

Ну, это для постоянного пользования, а мне это только на начальном этапе нужно. С этим прекрасно справляется MP3-плеер :)
Я про тест упомянул потому, что не знаю, как себя "Вектор" поведёт при включении после ремонта и хороший тест, автоматически запускающийся из ПЗУ мог бы очень помочь. Но такого я сам не нашёл и в теме, которую создал, никто не ответил.

KTSerg
26.09.2019, 09:29
Ну, это для постоянного пользования, а мне это только на начальном этапе нужно. С этим прекрасно справляется MP3-плеер :)
Я про тест упомянул потому, что не знаю, как себя "Вектор" поведёт при включении после ремонта и хороший тест, автоматически запускающийся из ПЗУ мог бы очень помочь. Но такого я сам не нашёл и в теме, которую создал, никто не ответил.

https://zx-pk.ru/threads/30868-testy-pamyati.html
А это не смотрел?

CodeMaster
26.09.2019, 09:39
Собрал на РС программу, кинул её на иконку линкера, а уже он эту программу сам отправляет в "Вектор" по тому же 0-модему. Для этого особо крутых средств не надо.
Для Вектора можно сделать что-то типа SIO2PC в плане софта и использования или в Atari что-то изначально в ПЗУ предусмотрено для такой загрузки?

KTSerg
26.09.2019, 10:14
Для Вектора можно сделать что-то типа SIO2PC в плане софта и использования или в Atari что-то изначально в ПЗУ предусмотрено для такой загрузки?
О том и речь, чтобы использовать на Векторе заложенную в загрузчик возможность грузить программы с внешнего источника, в том числе РС, по одному из протоколов, либо 0-modem, либо ЛВС.
Я не в курсе на счёт Atari, возможно в нём есть встроенный СОМ-порт. В Векторе его нет. Соответственно либо проводками цеплять Вектор к LPT, для 0-modema. Либо собирать контроллер для ЛВС.
Ну и софт соответствующий для РС писать :)

AlexBel
26.09.2019, 10:25
https://zx-pk.ru/threads/30868-testy-pamyati.html
А это не смотрел?

Насколько я понял, этот тест можно использовать при определённой работоспособности компьютера. Но если не работает, скажем, видеоконтроллер, то как узнать результаты тестирования? Этот тест, если я правильно понял, умеет только выводить результаты на экран, без экрана он больше никак ничего не сообщает - ни миганием светодиодов, ни звуковыми сигналами. Это во-первых. Во-вторых, тест должен как-то попасть в компьютер. Т.е. его нужно загрузить с магнитофона. А как это сделать, если неисправен, допустим, порт? Или ещё что-то на пути загрузки. А зашить тест в ПЗУ и вставить вместо штатного, наверное, нельзя, он просто не запустится...

KTSerg
26.09.2019, 10:34
Насколько я понял, этот тест можно использовать при определённой работоспособности компьютера. Но если не работает, скажем, видеоконтроллер, то как узнать результаты тестирования? Этот тест, если я правильно понял, умеет только выводить результаты на экран, без экрана он больше никак ничего не сообщает - ни миганием светодиодов, ни звуковыми сигналами. Это во-первых. Во-вторых, тест должен как-то попасть в компьютер. Т.е. его нужно загрузить с магнитофона. А как это сделать, если неисправен, допустим, порт? Или ещё что-то на пути загрузки. А зашить тест в ПЗУ и вставить вместо штатного, наверное, нельзя, он просто не запустится...
А к автору обратиться? ;)

Кстати, на счет подключения Вектора к LPT... Честно скажу давно не интересовался. На запрос USB-LPT гугля даёт кучу ссылок на переходники по цене 120-500руб. Правда я пока не понял, что там за софт, для обращения к LPT через USB.

AlexBel
26.09.2019, 10:43
А к автору обратиться? ;)

Кстати, на счет подключения Вектора к LPT... Честно скажу давно не интересовался. На запрос USB-LPT гугля даёт кучу ссылок на переходники по цене 120-500руб. Правда я пока не понял, что там за софт, для обращения к LPT через USB.

Да, конечно, можно и к автору, от вопроса хуже не будет :) Ну, у меня запуск назначен на сегодня-завтра, если не заработает с обычным загрузчиком (буду пробовать с 2-килобайтным), тогда буду просить доработать тест. Если появится хотя бы загрузочный экран, то можно будет попробовать загрузиться с магнитофона...

А насчёт переходника LPT... Можно, конечно, но лично я не вижу смысла. Что даст такой переходник? Виртуальный LPT? Кто будет с ним работать?

ivagor
26.09.2019, 11:03
Теста, который работал бы из пзу я не знаю. И даже теста, который бы при старте вектора переписался в озу, сам стартовал и стал оттуда работать тоже не знаю.
Самое похожее, что делал - тест техпрогона, который при старте компьютера автоматом переписывается в озу. Но еще нужно нажать СБР+БЛК (или имитировать нажатие, если клавиатуры нет), чтобы отключить пзу и стартовать тест. Дмитрий2012 проверял эту штуку на реплике 2014, она работала. Могу выложить, но там никаких ноу-хау нет, просто цикл пересылки байт и зацикливание, это любой может сделать за пару минут.

AlexBel
26.09.2019, 12:09
Увы, это сработает, если нормально функционирует ОЗУ.

KTSerg
26.09.2019, 13:50
...
А насчёт переходника LPT... Можно, конечно, но лично я не вижу смысла. Что даст такой переходник? Виртуальный LPT? Кто будет с ним работать?
А кто тут говорил о подключении Вектора по 0-modem с LPT для загрузки программ?

Я в конце 90-ых перегонял софт с Векторовских дискет на РС. О 0-модеме в Векторе не знал, да он мне и не помог бы. Нашел описание 0-модема в "Нортон Коммандер", сделал переходник, используя Нортоновский протокол перегнал весь софт с Дискет Вектора на РС. Подключение там аналогичное, передача полубайтная. Пришлось правда две проги написать. Одна для Вектора, читающая файлы с дискет и передающая их по 0-модему. Вторая для РС - принимающая данные и сохраняющая их в файлы.

ivagor
26.09.2019, 14:11
KTSerg, а физически со стороны вектора как это было организовано?

KTSerg
26.09.2019, 14:21
KTSerg, а физически со стороны вектора как это было организовано?
ПУ - LPT. Просто провода, раздеребанил шнурок подключения принтера.

Помню крыша тогда "ехала" от того, что проги писал одновременно на двух копах с разной раскладкой клавиатур... Через некоторое время, от усталости, сидел и тупо смотрел на клаву... - "вот только что эта буква тут была..." ... :)

ivagor
26.09.2019, 14:33
А, понял, протокол нортоновский, но передача через LPT. Я сначала подумал, что на писи принимал данные с вектора нортон, а теперь понял, что там работала своя программа.
Кстати, я немного пользовался в районе 2000 года 0-модемным соединением Tim0xи.

KTSerg
26.09.2019, 14:43
Я вот не совсем понимаю, почему в 0-модеме для Вектора использовался полубайтный протокол. Судя по алгоритму, можно было байт целиком передавать, т.к. используется только один синхробит для передачи и один для приёма. В Centronics они есть. Может для совместимости с Нортоном?

AlexBel
26.09.2019, 14:48
А кто тут говорил о подключении Вектора по 0-modem с LPT для загрузки программ?

Я в конце 90-ых перегонял софт с Векторовских дискет на РС. О 0-модеме в Векторе не знал, да он мне и не помог бы. Нашел описание 0-модема в "Нортон Коммандер", сделал переходник, используя Нортоновский протокол перегнал весь софт с Дискет Вектора на РС. Подключение там аналогичное, передача полубайтная. Пришлось правда две проги написать. Одна для Вектора, читающая файлы с дискет и передающая их по 0-модему. Вторая для РС - принимающая данные и сохраняющая их в файлы.

Ну, поскольку тема об использовании 0-модема в загрузчике (а там он, как я понял, только для загрузки программ), то я посчитал логичным предположить, что и подключение к LPT с этой целью :)

А нортоновскую функцию помню. Правда, сам чаще пользовался средствами MSDOS 6.22 - можно было организовать полноценный доступ до удалённых дисков, причём, в отличии от Нортона, доступ могли получить любые программы. Локальной сети тогда не было (она у нас появилась с появлением Windows, через NetBIOS) и от соединения двух компьютеров по LPT все вокруг только ахали :)
Потом я сделал кабель для COM-порта, но там скорость была уже не та...

KTSerg
26.09.2019, 14:54
Ну, поскольку тема об использовании 0-модема в загрузчике (а там он, как я понял, только для загрузки программ), то я посчитал логичным предположить, что и подключение к LPT с этой целью :) ...
Ну да. Можно загрузить любую по желанию игрушку (программу) с РС, быстрее чем с МР3-плеера :)

ivagor
26.09.2019, 15:06
Вернусь к своему удивлению про LPT, нуль-модемный кабель и NC. Все же соединение по LPT - LapLink, а нуль-модемный - COM. Помню, что покупал нуль-модемный кабель для соединения двух нортонов и он был точно COM. Такое вот терминологическое занудство. Ну и с Tim0xой можно заочно поспорить про название его варианта, но тут он автор и сам назвал как хочет.

KTSerg
26.09.2019, 15:11
Вернусь к своему удивлению про LPT, нуль-модемный кабель и NC. Все же соединение по LPT - LapLink, а нуль-модемный - COM. Помню, что покупал нуль-модемный кабель для соединения двух нортонов и он был точно COM. Такое вот терминологическое занудство. Ну и с Tim0xой можно заочно поспорить про название его варианта, но тут он автор и сам назвал как хочет.
Помню в Нортоне если выбрать вариант "соединение 0-модем", он спрашивал: - СОМ или LPT (хотя за 20 лет... , могу ошибаться, возможно был отдельный пункт), и в инструкции были схемы соединения. Хотя да, 0-модем для LPT немного не того, этого...

ivagor
26.09.2019, 15:17
Если быть занудным до упора то вот картинка (https://hsto.org/getpro/habr/comment_images/843/a12/9df/843a129dff31befc609c4dbea0486331.png) с настройкой соединения. Т.е. сам нортон называл это все обобщенно Commander Link (не LapLink и не NullModem). И прочитал, что NC3 еще не поддерживал LPT (но COM уже поддерживал), NC4 научился LPT.

KTSerg
26.09.2019, 15:20
Память, это такая штука... не замечаешь, как появляются ложные - "наведённые" воспоминания... искажающие реально произошедшие события.
Я Нортоном почти не пользовался. Юзал "до упора" Волкова, пока на Фар не перешел.

AlexBel
26.09.2019, 15:24
Вернусь к своему удивлению про LPT, нуль-модемный кабель и NC. Все же соединение по LPT - LapLink, а нуль-модемный - COM. Помню, что покупал нуль-модемный кабель для соединения двух нортонов и он был точно COM. Такое вот терминологическое занудство. Ну и с Tim0xой можно заочно поспорить про название его варианта, но тут он автор и сам назвал как хочет.

Да, действительно, из-за нестыковок в терминологии бывает много недопониманий. Например, я, как-то, общался с одним форумачанином в плане видеоконтроллеров и видеостандартов и никак не могли объясниться. Позже оказалось, что под RGB он подразумевал VGA, а я - телевизор и SCART. Технически он прав (мы оба правы), но, по моему устоявшемуся с годами, мнению, когда говорят про RGB ретрокомпьютерщики имеют в виду телевизионный стандарт, а не VGA. А то этак можно и LVDS сюда приписать - там тоже RGB :) Так что, таки да, синхронизация в терминологии необходима - экономит время, нервы и патроны :) :)

KTSerg
27.09.2019, 08:14
Народ.
Я в своих закромах, откопал архивчик. Он называется "lptpuloader.zip" :)
А в нём три файлика: txt, exe, dll.
Залез в ехе, а там букавками:

"LPT -> PU loader" v(1.0) Tim0xA 2008
lptpuloader.exe filename.rom [block]

Почему-то стрелка только в одну сторону, хотя схемой предусмотрена передача данных и в обратную сторону - с Вектора на РС.


После того как написал это сообщение, нашел оригинал на этом форуме
https://zx-pk.ru/threads/8778-varianty-zagruzchikov.html?p=164786&viewfull=1#post164786

Причем самый прикол в том, что поиск форума не находит, а гугля и яндекс находят оригинальное сообщение Tim0xA :)

AlexBel
27.09.2019, 09:20
Народ.
Я в своих закромах, откопал архивчик. Он называется "lptpuloader.zip" :)
А в нём три файлика: txt, exe, dll.
Залез в ехе, а там букавками:

Почему-то стрелка только в одну сторону, хотя схемой предусмотрена передача данных и в обратную сторону - с Вектора на РС.

После того как написал это сообщение, нашел оригинал на этом форуме
https://zx-pk.ru/threads/8778-varianty-zagruzchikov.html?p=164786&viewfull=1#post164786

Похоже, эта программа будет работать только с железным LPT-портом, адаптеры USB<>LPT не пойдут. Если я правильно понял, драйвер обеспечивает прямую работу с LPT и виртуальный порт просто не увидит...

KTSerg
27.09.2019, 09:37
Похоже, эта программа будет работать только с железным LPT-портом, адаптеры USB<>LPT не пойдут. Если я правильно понял, драйвер обеспечивает прямую работу с LPT и виртуальный порт просто не увидит...
Скорее всего именно так.
Посмотрел описание современных переходников USB-LPT, у всех оговорка, что это не эмуляция LPT-порта, а Приблуда для подключения принтера.
Видимо какие-то моменты работы железного LPT-порта в этих переходниках просто не реализованы.

KTSerg
05.10.2019, 15:14
Запустил на "мульти-интерфейснике" протокол LPT->ПУ.
Пару часов бился, со старыми исходниками, не хотел грузить. Вылечилось, задержкой 10мкс после отправки каждого байта.
Алгоритм передачи в модуле LPT->ПУ нужно поправить.
Нужно в конце добавить ожидание подтверждения Вектора, что второй полуБайт принят.
Раньше его не было.
void Send_Byte_LPT(uint8_t b){
DATA_OUT(b & 0x0F);
while(lpt_busy && Key_Stop);
DATAOUTCLR;
while(lpt_read && Key_Stop);
DATA_OUT(b >> 4);
while(lpt_busy && Key_Stop);
DATAOUTCLR;
while(lpt_read && Key_Stop);
}

KTSerg
05.10.2019, 18:14
Интересный результат.
Программа 24КБ грузится:
по протоколу LPT->ПУ 4.5сек
по протоколу ЛВС 5.6сек
по протоколу ПЗУ 0.8сек
по магнитофонному 65.2сек

ЛВС отстает от LPT не секунду, видимо из-за сложности протокола. Он с заголовками блоков как магнитофонный.

Так что протокол LPT->ПУ по скорости уступает только загрузке с ПЗУ.

ivagor
05.10.2019, 19:00
Для сравнения быстрый магнитофонный формат (rom2fm) 24 Кб - 16.25 секунд + загрузчик и пауза еще секунд 5. Ну и загрузчик этого формата тоже можно зашить в пзу.

KTSerg
16.10.2019, 19:01
Посмотрел в нете для LPT-порта "Полубайтный режим ввода - Nibble Mode". Это якобы протокол используемый в загрузчике Тим0хи.
Но, в описании сказано, что при установке тетрады на шине, её готовность отмечается низким уровнем сигнала "готово". А у Тим0хи тетрада сопровождается высоким уровнем сигнала "готово".
Да и уровень сигнала "принял тетраду"/"занят" тоже вроде не той (системы) полярности.
Пока не понял, в чём дело, может чего не так понял...

Improver
17.10.2019, 14:10
Может там сделано также, как на ком-порту, где единицей является отрицательное (или нулевое) напряжение?

KTSerg
18.10.2019, 18:11
Похоже, эта программа будет работать только с железным LPT-портом, адаптеры USB<>LPT не пойдут. Если я правильно понял, драйвер обеспечивает прямую работу с LPT и виртуальный порт просто не увидит...
Купил я USB->LPT адаптер. Предназначен для подключения принтера. Драйвер ему не нужен, ставится автоматом. В системе видится как "Поддержка USB принтера".
Добавил в систему принтер "HP LaserJet 1100 (MS)" - почему его не спрашивайте, не знаю, просто наугад.
Набросал в екселе программку, которая разбивает Байты на тетрады, добавляет в начало заголовок для интерфейса Тим0хи, конце добавляет контрольную сумму исходного файла, и записывает это всё в новый файл.
Подключил USB-LPT к Вектору (4Бита данных, Strob, Busy, GND), проинвертировал оба управляющих сигнала (С4->Busy и Strob->B5).
Запустил FAR. Нажал на созданном для выгрузки файле Alt+F5 (печать), Enter.....
И ФАЙЛ ЗАГРУЗИЛСЯ!!!!!! в Вектор!!!!!
Завтра специально пойду на работу, сконвертирую ещё пару больших игрушек для тестирования, а то сейчас есть только тест ОЗУ в 512байт.

Так, что для загрузки программ в Вектор достаточно USB->LPT адаптера (и перекодировщика файлов).
Ни каких больше специальных приблуд и программ выгрузки не нужно, FAR справляется :)
:v2_dizzy_punk: :v2_dizzy_punk: :v2_dizzy_punk:

AlexBel
18.10.2019, 18:26
Купил я USB->LPT адаптер.

Какой адаптер? Дай, пожалуйста, ссылку.

KTSerg
18.10.2019, 18:32
Какой адаптер? Дай, пожалуйста, ссылку.
Купил этот https://ru.aliexpress.com/item/32908235055.html?spm=a2g0s.12269583.0.0.4fd67130bl rweD
Но думаю, любой аналогичный подойдёт, есть варианты с разными разъёмами.

ivagor
18.10.2019, 18:50
KTSerg, это очень здорово, но я не могу удержаться от занудства насчет специальной программы.
Она нужна или для
1. конвертирования и отправки исходного векторовского файла;
или для
2. конвертирования в промежуточный формат для последующей "печати" стандартными программами.
Первый вариант имхо все же удобнее.
Это так, придирки, результат, повторюсь, очень хороший.

Просто в порядке обсуждения - интересно, насколько сложно доделать интерфейс, чтобы можно было "печатать" исходные файлы без перекодирования?

KTSerg
18.10.2019, 19:02
...
Просто в порядке обсуждения - интересно, насколько сложно доделать интерфейс, чтобы можно было "печатать" исходные файлы без перекодирования?
Думаю совсем не сложно.
Перейти с передачи тетрадами, на передачу Байта, проинвертировать управляющие сигналы.
Правда при "печати" исходного не будет возможности проконтролировать "целостность" загруженного файла, т.к. не будет преамбулы и контрольной суммы.

- - - Добавлено - - -


KTSerg, это очень здорово, но я не могу удержаться от занудства насчет специальной программы.
Она нужна или для
1. конвертирования и отправки исходного векторовского файла;
или для
2. конвертирования в промежуточный формат для последующей "печати" стандартными программами.
Первый вариант имхо все же удобнее.
...
Я имел в виду, что не нужно писать программу которая для передачи файла будет обращаться к портам, а в случае с окнами ещё и драйвер нужен... Все инструменты доступны и они есть (правда у меня дома екселя нет :) ) ...

ivagor
18.10.2019, 19:16
Правда при "печати" исходного не будет возможности проконтролировать "целостность" загруженного файла, т.к. не будет преамбулы и контрольной суммы.
Эту проблему можно почти полностью решить. Дальше будут отвлеченные рассуждения, не призываю так делать, просто излагаю как один из возможных вариантов.
Т.к. протокол приема был бы новый, то нужен и обновленный загрузчик, а значит
1. Для "старых" файлов можно предусмотреть опознавание по размеру и crc. Для примера в базисе 909 файлов, 909*5=4545 байт. Такие файлы можно "печатать" в исходном виде, при успешном приеме загрузчик их опознает и может как-то сообщить об этом (напечатать сообщение, подать звуковой сигнал и т.д.)
2. "Новые" файлы придется преобразовывать. Загрузчик их может опознавать по специальной сигнатуре + возможны дополнительные элементы опознавания.

- - - Добавлено - - -

Поправка, в картотеке все же 909 записей, а не файлов, т.к. файлов в каждой карточке м.б. несколько. Принципиально это ничего не меняет, просто в крайнем случае из-за ограниченного размера пзу не все файлы попадут в разряд "старых", часть из них придется грузить как "новые".

KTSerg
18.10.2019, 19:37
Эту проблему можно почти полностью решить. Дальше будут отвлеченные рассуждения, не призываю так делать, просто излагаю как один из возможных вариантов. ...
Чёт я не понял, это намёк на возможность "печатать" в Вектор программы прямо из картотеки?
Если так, то если уж в картотеке есть "воспроизведение" файла на линейный выход компа, то прилепить к картотеке разбивку байт на тетрады и снабдить его "конвертом" в виде преамбулы и контрольной суммы, чтобы потом выгрузить данные "на принтер"... полагаю реализуемо (и загрузчик в Векторе менять не нужно), но будет ли востребовано?

ivagor
18.10.2019, 19:45
Т.к. я доисторический оффлайновый человек, то подумал, что картотеку можно скачать и печатать файлы со своего компа. Но вариант с печатью из картотеки с преобразованием еще круче. Если немного вернуться на землю, то у svofski уже есть упомянутый способ с генерацией wav и в планах был более быстрый способ с шадком, Т.е. способов уже много, не факт что в картотеке их нужно больше. Но если без привязки к базису, то почему бы и нет.

KTSerg
18.10.2019, 20:28
Т.к. я доисторический оффлайновый человек, то подумал, что картотеку можно скачать и печатать файлы со своего компа. ...
Ну, если офф-лайн, то всё-таки программка конвертор rom->txt, а его (txt) уже "печатать".
Выложу свой екселевский конвертор, может на его основе кто-нибудь, что-нибудь сварганит :)

AlexBel
19.10.2019, 08:33
Купил этот https://ru.aliexpress.com/item/32908235055.html?spm=a2g0s.12269583.0.0.4fd67130bl rweD
Но думаю, любой аналогичный подойдёт, есть варианты с разными разъёмами.

Думаю, если этот уже проверен, то лучше его и брать. Правда, бывает, что начинка отличается даже у одинаковых девайсов и это сказывается на совместимости, как, например, у USB-оцифровщика видео.

KTSerg
19.10.2019, 10:43
Проверил, большие файлы тоже грузятся.
Прицеплю модуль для VBA екселя.
На первом листе создаются две кнопки, к ним привязываются соответствующие подпрограммы из модуля.
lpt-pu.zip - это архив с рабочим xls файлом.
И файл pin-s.txt собственно распиновка подключения Centronics к ПУ.

svofski
19.10.2019, 14:41
Печать из картотеки это все же слишком. Только если в QR-код, который будет распознаваться подключенным к Вектору сканером. В этом довольно трудно узреть здравый смысл, но физические токены это прикольно. Опять же, многие хотят иметь картотеку локально. Вот, можно ее поиметь будет не просто локально, а в виде пачки бумаги.

KTSerg
02.09.2020, 05:24
Думаю, если этот уже проверен, то лучше его и брать. ...
Конвертер USB-LPT накрылся "медным тазом" :(
Несколько раз воспользовался, и он перестал определяться.
К разным компам пробовал подключить, пишет "Устройство USB не опознано". :(

Дёрнуть бы дескрипторы и протокол USB-шной части этого конвертора. Может получилось-бы эмулировать...

AlexBel
02.09.2020, 07:28
Конвертер USB-LPT накрылся "медным тазом" :(
Несколько раз воспользовался, и он перестал определяться.
К разным компам пробовал подключить, пишет "Устройство USB не опознано". :(

Дёрнуть бы дескрипторы и протокол USB-шной части этого конвертора. Может получилось-бы эмулировать...

Вот, что Win10 сообщает о моём кабеле:

"Поддержка USB принтера"
"Устройство USB\VID_1A86&PID_7584\5&2a2b26f7&0&2 запущено."
"USB\VID_1A86&PID_7584&REV_0254"
"USB\VID_1A86&PID_7584"

Вполне возможно, внутри просто установлена копеечная китайская микросхема CH341A, умеющая, среди прочих талантов, эмулировать принтерный интерфейс. И VID 1A86 совпадает с ней.
Насколько я понял, немного почитав Интернет, эта микросхема не очень надёжная, особенно, если в схеме используется её внутренний стабилизатор.

KTSerg
02.09.2020, 08:06
Вот, что Win10 сообщает о моём кабеле:

"Поддержка USB принтера"
"Устройство USB\VID_1A86&PID_7584\5&2a2b26f7&0&2 запущено."
...
Вполне возможно, внутри просто установлена копеечная китайская микросхема CH341A, умеющая, среди прочих талантов, эмулировать принтерный интерфейс. И VID 1A86 совпадает с ней.
Насколько я понял, немного почитав Интернет, эта микросхема не очень надёжная, особенно, если в схеме используется её внутренний стабилизатор.
Спасибо за инфу.
гугля по VID-PID дал ссылку:
http://www.devicekb.com/usb-vendors/vid_1A86-pid_7584.php
на чип CH340S
Буду рыть дальше.
https://www.mikrocontroller.net/attachment/220869/CH340DS2_E.PDF
Со схемой.

https://patrickelectric.work/assets/ch341a_dongle/CH341DS1.pdf
есть подключение в режиме "принтер".

AlexBel
02.09.2020, 08:16
CH340 - это последовательный порт, UART. Не думаю, что она установлена в этом переходнике. А вот CH341 - запросто, она содержит несколько интерфейсов, в том числе принтерный EPP.

KTSerg
02.09.2020, 20:52
...
Вполне возможно, внутри просто установлена копеечная китайская микросхема CH341A, умеющая, среди прочих талантов, эмулировать принтерный интерфейс. ...
Вот задачка...
Не ремонтопригодный новый USB-LPT конвертор, от 150руб.
Просто микросхема СН340-СН341 - больше 100руб, ещё и обвязку лепить...
Программатор EEPROM с микросхемой СН341А на борту, который теоретически можно переключить в режим конвертора USB-LPT - 200-300руб (в зависимости от места покупки)...

AlexBel
03.09.2020, 14:03
Вот задачка...
Не ремонтопригодный новый USB-LPT конвертор, от 150руб.
Просто микросхема СН340-СН341 - больше 100руб, ещё и обвязку лепить...
Программатор EEPROM с микросхемой СН341А на борту, который теоретически можно переключить в режим конвертора USB-LPT - 200-300руб (в зависимости от места покупки)...

Ну, не совсем. CH341 - да, порядка 100р, хотя, если учесть её функционал, это не очень дорого. Достаточно сравнить с FT245. А вот CH340 стоят значительно меньше. Я недавно получил заказ - 5 штук за 105 рублей. Можно, конечно, ещё прибавить копеечный кварц на 12МГц - рублей 10-15. Но, опять-таки, если сравнить с FT232, то это намного дешевле. Конечно, FT232 позволяет настраивать свои параметры, но это нужно далеко не всегда, чаще требуется организовать обычный UART.
А насчёт сравнения цен на микросхемы с ценами на программатор или кабель - да, забавно. Когда-то я сидел и думал - купить контроллер ATmega328 или доплатить совсем немного и купить плату "Ардуино". Вытащить из неё контроллер и ещё будет кучка деталек, в том числе - готовый USB<>UART :)

KTSerg
03.09.2020, 14:41
Ну, не совсем. CH341 - да, порядка 100р, хотя, если учесть её функционал, это не очень дорого. Достаточно сравнить с FT245. А вот CH340 стоят значительно меньше. Я недавно получил заказ - 5 штук за 105 рублей. ...
Цена на CH340G - да так и есть сотня за 5шт.
А вот CH340S (специализированная USB-LPT) самая дешевая с доставкой 145руб за штуку.
Фиг с ними с чипами. Если в нашей деревне программатор будет дешевле 500руб, возьму его, хотя он и узкоспециализированный.

AlexBel
03.09.2020, 14:51
Цена на CH340G - да так и есть сотня за 5шт.
А вот CH340S (специализированная USB-LPT) самая дешевая с доставкой 145руб за штуку.
Фиг с ними с чипами. Если в нашей деревне программатор будет дешевле 500руб, возьму его, хотя он и узкоспециализированный.

Про CH340S я не знал. Возможно, в кабеле она и стоит...

KTSerg
03.09.2020, 15:11
Про CH340S я не знал. Возможно, в кабеле она и стоит...
Скажем так, её вариант или аналог.
Поскольку в конвертере USB-LPT стоит платка с кристаллом, залитым каплей пластика... ни какой внешней обвязки, даже внешнего кварца нет.

KTSerg
04.09.2020, 14:34
Купил в магазине радиотоваров программатор "CH341A Mini Programmer" - так написано на плате.
Сам чип не маркирован, или маркировка спилена.
Без трепанации, этот программатор, использовать как USB-LPT конвертер не возможно.
27-я нога "BUSY" - посажена на корпус.
25-я нога "Strobe" - не выведена ни на один разъём.
Из шины данных, распаяны и выведены на разъём только биты D0, D3, D5, D7.

Отпаял ноги 25 и 27 от платы, замкнул (как по инструкции, для перевода чипа в режим "Принтер") между собой ноги 23 и 24 - Винда увидела программатор как два "устройства поддержки принтера".
Одно с VID/PID 1A86/5584, второе 0924/3DA4.

KTSerg
05.09.2020, 09:37
Программатор оказался слишком шустрым для Вектора... :(
По паспорту у чипа CH341A максимальная длительность импульса STROBE - 10мкс (на практике логгер показал 1,75мкс).
А Вектор читает порт с интервалом 10мкс.
На практике получилось, что после того как Вектор сбросил сигнал BUSY, поймал входящий STROBE и выставил новый BUSY - программатор успел в этом интервале выплюнуть 16 байт.
:( :( :(

AlexBel
05.09.2020, 09:59
А у драйвера тайминги не настраиваются? Принтеры тоже бывают не очень шустрые в плане обмена.

KTSerg
05.09.2020, 18:35
Победил я этот программатор на CH341A !!!
Собрал схему "торможения", которая формирует BUSY сразу после окончания Strobe.
Одна микросхема ЛА3 и одна ТМ2.
Но побочным эффектом схемы оказалась необходимость добавлять в конец передаваемого текстового файла ещё один любой символ (полубайт). Иначе загрузчик просто перезапускался по окончании приёма файла.

Ещё одной фишкой программатора, оказалась необходимость замкнуть на корпус вывод 6 чипа CH341A - это вход "PEMPTY" (если его не коротнуть на землю, комп пишет "В принтере Нет бумаги"). Вывод 6 выведен на один из разъёмов программатора.

Схема "тормоза" во вложении. Кстати эта схема сама инвертирует сигналы Busy и Strobe, так что дополнительно этого делать не нужно.

Кнопка "Reset" просто на аварийный случай.

73424

KTSerg
12.09.2020, 15:48
Если вдруг, у кого-то ещё появится желание или необходимость воспользоваться загрузкой программы в Вектор через переходник LPT-ПУ, и не будет желания или возможности конвертировать rom-файл с помощью Excel-я (метод который я ранее предлагал), то выложу консольный конвертор ROM-файла в TXT-файл.

Обновил вложение.
Сложил оба варианта в одну программу, добавил параметр.
Параметр "/0" - добавляет лишний символ в конец файла, для исправления косяка возникающего при применении схемы "тормоза", при использовании переходника на основе программатора из CH341A.

У программы первый обязательный параметр - имя rom-файла.
И два не обязательных:
'#0000' - адрес загрузки файла (в hex-виде), младший байт игнорируется.
'/0' - (ноль) признак необходимости добавить символ в конец файла.
rom-txt rom_file [#xx00] [/0]