Вход

Просмотр полной версии : z80-telnet



asve79
06.02.2019, 08:37
Выкладываю на общее обозрение свой проект, о становлении которого рассказывал здесь же на страницах блога (https://zx-pk.ru/blogs/8784-asve79.html).

Принимаю конструктивную критику и пожелания.

На текущий момент версия не поддерживает управляющие коды и ANSI. В общем-то неначем было тренироваться, да и потребности никто не выражал. Будем развивать по мере востребованности.
Версия продукта под ZX Evolution - использует механизм подключения к сети через соединение к компьютеру, на котором поднят ic-сервер.
Версию под ESP планирую сделать в обозримом будущем, ввиду того, что ESP модуль ко мне приехал буквально на днях.

Можно ли сделать под порты Профи? Архитектурно нужно просто заменить один модуль работы с портом на другой, или склонировать текущий и поменять адрес порта. Но тренироваться мне неначем: эмуля профи с поддержкой порта вроде как нет, "железного" профика у меня тоже нет. Тоже справедливо и для ZX Next )

Проект в гитхабе: https://github.com/asve79/z80-telnet

Крайняя версия для скачивания: https://github.com/asve79/z80-telnet/blob/master/telnet.sna (ZX Evo RS232 + IC)

TO DO:

Версия под ESP модуль для ZX EVO
Версия под ESP модуль для Profi



Wish list:

Поддержка экрана PROFI
Поддержка экрана ZX Evo
Поддержка экрана 64x22 для стандартного экрана
Поддержка XModem
Поддержка управляемых кодов
Смещение в адресном пространстве
Переработка архитектуры под модульность и взаимодействию между модулями через API



Демка:
http://alecnet.ae-nest.com/wp-content/uploads/2019/01/z80-telnet-demo3.gif

nihirash
06.02.2019, 08:48
Нашел проект в Гите ещё позавчера - на моем Reverse U8 с ts conf работает. В отличии от ZiFi.

Error404
06.02.2019, 11:41
Что есть такое "ic-сервер"? Насколько он нужен, ведь ESP "искаропки" умеет открывать соединение на единичный порт и IP одной AT-командой (https://radioprog.ru/post/407#AT+CIPSTART) (и останется адаптировать уже написанного вами верхнеуровневого клиента для непосредственнго подключения на целевой хост "внешней сети")? Чуть сложнее с одновременными несколькими "сокетами" (как я понимаю, до четырех), но и не везде это надо.

nihirash
06.02.2019, 11:47
Что есть такое "ic-сервер"?

Это альтернативный вариант выхода в сеть, через RS-232 подключенный к ББ, без ESP.

asve79
06.02.2019, 12:02
Дополню ответ от pinny,

socket server: https://github.com/HackerVBI/ZiFi/tree/master/_rs232/ic_emul_0.2

Через него же работает версия Zifi подключаемая через RS232
Это для тех, у кого нет возможности использовать ESP модуль.

nihirash
06.02.2019, 12:59
Через него же работает версия Zifi подключаемая через RS232

Или не работает, как в моем случае :D

solegstar
06.02.2019, 13:42
Есть железный Профи с sd картой по стандарту z-controller и двумя компортами - фирменным и по стандарту Кондратьева, и есть espшка. Я её правда ещё не заводил, так как надо доделать кое-какие долги. Но к тестам я буду готов в скором времени. Ещё SD карта появилась на zxm-phoenix с версии 03, а также там должен быть и компорт по стандарту Кондратьева, так как установлена на борту zxmc2. Если такие условия годятся, то тестировщиков может быть вагон и маленькая тележка! :)

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

Лишь бы прога была под стандартный экран спека, для начала, а там можно и подумать о расширенном цветном через какой-то настраиваемый модуль/драйвер экрана.

asve79
06.02.2019, 13:58
Есть железный Профи с sd картой по стандарту z-controller и двумя компортами - фирменным и по стандарту Кондратьева, и есть espшка. Я её правда ещё не заводил, так как надо доделать кое-какие долги. Но к тестам я буду готов в скором времени. Ещё SD карта появилась на zxm-phoenix с версии 03, а также там должен быть и компорт по стандарту Кондратьева, так как установлена на борту zxmc2. Если такие условия годятся, то тестировщиков может быть вагон и маленькая тележка!


Вот и пул задач вырисовывается по освоению ESP модуля. ) Видимо придется отложить изучение API wс для FTP-нки и вернуться к сабжевой активности. )

Чиркни тогда пожалуйста спеку порта профика, который по Кондратьеву.



Лишь бы прога была под стандартный экран спека, для начала, а там можно и подумать о расширенном цветном через какой-то настраиваемый модуль/драйвер экрана.

Экран используется стандартный )
Окошки от Barmaley_m. Еще бы знаков +10 символов и было бы вообще огонь. ) В этом плане экран профи идеален. )

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


Или не работает, как в моем случае :D

По этой проблеме не знаю поможет или нет. Но ZiFI использует другой порт в ts-conf-е. Оно и в версии приложения не на Rs232 обращается. https://github.com/HackerVBI/ZiFi/blob/master/_esp/upd1/README!!__eRS232.txt

solegstar
06.02.2019, 19:51
asve79, вот описание (http://zx.pk.ru/attachment.php?attachmentid=3103&d=1145690339) набортного ком порта zxmc2. В ней организован стандарт Кондратьева. Также мультикарта встроена в феникс и есть под слот zxbus. Описание портов фирменного ком порта Профи я напишу чуть позже.

Error404
06.02.2019, 22:16
Лишь бы прога была под стандартный экран спека, для начала, а там можно и подумать о расширенном цветном через какой-то настраиваемый модуль/драйвер экрана.

Все кто меня знают скажут "ну вот опять". :) Очень прошу автора разделить ESP-программы на 2 части, взаимодействующие через некое API (функции, керналь, что угодно): в одной части логика, во второй - системно и аппаратно-зависимая часть (все вот эти выводы на экран и ввод с клавиатуры, IO в COM-порт, чтение-запись файла, etc). Разместить эти части по возможности в пространстве 4000h...0BFFFh. Это даст возможность минимальной ценой и с бинарной совместимостью сделать порт на большинство 8-битных платформ (написав свою аппаратно-зависимую часть и используя логическую часть "как есть").

JV-Soft
06.02.2019, 22:18
asve79, отличный проект , буквально сегодня лазил по BBS , через telnet на PC.
И тут ваш проект , нет ли мыслей сделать клиента под разрешение 512x256 или половинный шрифт ?




Очень прошу автора разделить ESP-программы на 2 части, взаимодействующие через некое API (функции, керналь, что угодно): в одной части логика, во второй - системно и аппаратно-зависимая часть (все вот эти выводы на экран и ввод с клавиатуры, IO в COM-порт, чтение-запись файла, etc). Разместить эти части по возможности в пространстве 4000h...0BFFFh. Это даст возможность минимальной ценой и с бинарной совместимостью сделать порт на большинство 8-битных платформ (написав свою аппаратно-зависимую часть и используя логическую часть "как есть").
Отличное предложение.

asve79
07.02.2019, 08:34
asve79, отличный проект , буквально сегодня лазил по BBS , через telnet на PC.
нет ли мыслей сделать клиента под разрешение 512x256 или половинный шрифт ?

Спасибо за поддержку! )

512x256 это ж Под профик?
Под ts-conf я уже нашел окошки которыми можно пользоватся и что является частью API wc.
Текущий размер экрана явно маловат, это очевидно. Текущую реализацию, как я уже отметил, я делал с использованием окошек от Barmaley_m, и под стандарное разрешение. Про разрешение профи тоже думал (пока не заказал EVO :)), но мысли остались не материализованными т к по факту нужно написать некую простую оконную систему на что уйдет время, а столько всего еще хочется ). С окошками оно и выглядеть прилично будет. Если у кого есть в разработках свой интерфейс без проблем адаптирую под него. Можно конечно все переделать на "без окошек", а-ля "под консоль", но в настоящее время на это уйдет больше времени.

Про работу с ББСками - тогда надо еще проработать реализацию xmodem или zmodem-а, чтобы можно было что-то скачивать/отправлять.



Очень прошу автора разделить ESP-программы на 2 части, взаимодействующие через некое API (функции, керналь, что угодно): в одной части логика, во второй - системно и аппаратно-зависимая часть (все вот эти выводы на экран и ввод с клавиатуры, IO в COM-порт, чтение-запись файла, etc). Разместить эти части по возможности в пространстве 4000h...0BFFFh. Это даст возможность минимальной ценой и с бинарной совместимостью сделать порт на большинство 8-битных платформ (написав свою аппаратно-зависимую часть и используя логическую часть "как есть").

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

Пока только догадываюсь в чем ценность именно такого подхода. В моем понимании что в макросах вызывать печать символа, что тем же макросом вызвать какое-то APi по адресу. Это выглядит одинаково по трудоемкости, но всецело открыт для новых знаний, постижения и получения нового опыта. )

Error404
07.02.2019, 13:01
Можно конечно все переделать на "без окошек", а-ля "под консоль", но в настоящее время на это уйдет больше времени.
Про работу с ББСками - тогда надо еще проработать реализацию xmodem или zmodem-а, чтобы можно было что-то скачивать/отправлять.


Я за консоль. :)
И BBS-ки - это крутецкая круть! И очень надо.
Вот тут исходники реализации xModem: xGet от Камиля (caro) и xPut моя; окружение там для CP/M, но основные процедуры (rx_file, tx_file) - абстрактные (ну, почти) и можно прикрутить куда угодно: https://github.com/serge-404/AltairDOS/tree/master/App/source/xmodem

ZModem (который ЕМНИП в реализации лишь небольшая надстройка над XMODEM) мне понравился из QTerm, который сам по себе очень классный терминал с поддержкой VT100 (его исходники тут: http://www.classiccmp.org/cpmarchives/cpm/Software/WalnutCD/jsage/znode3/modem/qt43src.lbr , CP/M-овские архивы LBR на PC распаковываются при помощи утилит: Linux (ftp://ftp.ibiblio.org/pub/Linux/utils/compress/lbrate-1.1.tar.gz) DOS/WIN32 (http://www.gaby.de/cfx13.zip) или в CP/M утилитами типа LU.COM)



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

Ну, меня макросы конечно не остановят, но многим другим было бы наверное проще имея один единожды написанный платформенно-зависимый BIOS для всего множества ESP-программ, запускать у себя прямо любые бинарники семейства (программы с логикой only), без перекомпиляции (а логический код пускай делает вызовы в тот BIOS по фиксировнным точкам входа). Т.е. как приложение ОС (а есть там дальше ОС или нет в реализации того BIOS - уже личное дело каждого). Почему я говорил про использование области 4000...BFFF под код - это в связи с тем, что на большинстве платформ в начале или в конце адресного пространства размещены ПЗУ или окна диспетчеров или ОЗУ области связи, и использование ОЗУ там может быть затруднено.

JV-Soft
08.02.2019, 00:50
512x256 это ж Под профик?
Да ,но и пентагон может такое использовать аппаратно. Если пока не очень хочется заморачиваться ,то можно выводить шрифтом 4x8 ,будет 64 символа в строке , могу дать исходники и шрифт если надо.


И BBS-ки - это крутецкая круть! И очень надо.
Да ,да ,да !

asve79
08.02.2019, 08:45
И так, добавил на главную страничку todo и wish-листы. todo - это то что прям надо и над чем работаю, wish - то, что в очереди.
Это как бы не "прибито гвоздями", так что пожелания/замечания приветствуются.


Да ,но и пентагон может такое использовать аппаратно. Если пока не очень хочется заморачиваться ,то можно выводить шрифтом 4x8 ,будет 64 символа в строке , могу дать исходники и шрифт если надо.

Конечно не откажусь. Там автосролл есть? Добавлю с SDK с твоего разрешения.
Все-таки вырисовывается потребность доработки решения в сторону "консольного режима". )

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


Ну, меня макросы конечно не остановят, но многим другим было бы наверное проще имея один единожды написанный платформенно-зависимый BIOS для всего множества ESP-программ, запускать у себя прямо любые бинарники семейства (программы с логикой only), без перекомпиляции (а логический код пускай делает вызовы в тот BIOS по фиксировнным точкам входа). Т.е. как приложение ОС (а есть там дальше ОС или нет в реализации того BIOS - уже личное дело каждого).

Согласен полностью. Думал над этим для wc, но с автором еще не говорил. Сначала нужно сделать решение чтобы можно было пользоваться, а дальше исходить от потребности. )


Почему я говорил про использование области 4000...BFFF под код - это в связи с тем, что на большинстве платформ в начале или в конце адресного пространства размещены ПЗУ или окна диспетчеров или ОЗУ области связи, и использование ОЗУ там может быть затруднено.

в #4000 это ж экран...
В целом, как я говорил текущее размещение продиктовано больше оконной системой. А сделал через оконку потому что:
1. нужно было куда-то выводить, и желательно не в 32x22
2. красиво
3. быстрое и четкое решение, автору интерфейса огромный респект!
4. в консоле телнетовской мне не нравилось что командный режим включается по комбинации клавиш и выводится в рабочее поле. Проще би наглядней вводить команды в отдельное окно. Сейчас вот пришло осознание что можно и через консоль сделать удобно.

Но переразмещение в адресном пространстве пока не считаю приоритетной задачей. Вижу приоритет в том, чтобы сделать решения под разные порты. Глядишь, кто-нибудь и с библиотекой вывода в 512x256 подтянется)

JV-Soft
08.02.2019, 10:39
Там автосролл есть?
Нет автоскрола нет , просто процедуры печати текста ,как то делалось для 64 символа в строке для шрифта 4x8. Если это чем то поможет. Для обычного 256x192

Максагор
08.02.2019, 11:17
Есть пожелание, сделать драйвера низкого уровня по приему передаче через COM(или иные)-порты в виде подгружаемых внешних файлов (как в прежние времена в некоторых программах и играх делали внешние драйвера по доступу к памяти свыше 128Кб). Ну и стандартизировать, соответственно точки входа в них. А то, например, если брать ZX-Evo и ATM-turbo 2+, то при одинаковых экранах там совершенно разный тип доступа к COM-порту. На каком-нибудь Профике, вангую, еще один тип и т.д.

solegstar
08.02.2019, 12:17
512x256 это ж Под профик?
нет, Профик это 512х240. Пентагон возможно сделать под 512х192. Описание построения экрана Профи есть во вложении.
68000

Error404
08.02.2019, 13:28
Вот поэтому, ввиду зоопарка режимов, в идеале экраном и надо заниматься не самой программе, а некоему обособленному BIOS-у. Примерно как на линухе, где культурная терминальная программа перед началом работы делает запрос и получает текущие параметры консоли, и вывод управляющих последовательностей тоже делает абстрактно - через конвертирующую к реальности прослойку (либу termcap). А выводом в RS-232 также абстрагированно там занимается termios. Они конечно сильно навернуты, нам же надо только сугубо то что нужно тут, упомянул их всуе сугубо для примера. Автор напишет биос для себя, а весь остальной зоопарк терминалов сами потребители допишут. :)

Максагор
08.02.2019, 17:03
Вот поэтому, ввиду зоопарка режимов, в идеале экраном и надо заниматься не самой программе, а некоему обособленному BIOS-у. Примерно как на линухе, где культурная терминальная программа перед началом работы делает запрос и получает текущие параметры консоли, и вывод управляющих последовательностей тоже делает абстрактно - через конвертирующую к реальности прослойку (либу termcap). А выводом в RS-232 также абстрагированно там занимается termios. Они конечно сильно навернуты, нам же надо только сугубо то что нужно тут, упомянул их всуе сугубо для примера. Автор напишет биос для себя, а весь остальной зоопарк терминалов сами потребители допишут.

Уважаемый asve79, кстати, делает сейчас примерно то же, что и я - я сейчас тоже пишу терминалку, только под ОС TASiS, чтобы запускать ее на АТМ2+ и Пентеве. Уже готов ANSI-драйвер (на его основе сделал просмотрщик ANSI-графики - на форуме ссылку уже кидал: http://atmturbo.nedopc.com/download/isdos/ansiview/ansiview.ipc) и частично оконный интерфейс - работа в самом разгаре. Пока еще не брался за коммуникационные процедуры. Только накачал пока материалы по X- Y- Z- "модемам", по АТ-командам для модем. А за телнет (а у меня планируется возможность коннектиться как дозвоном по диалапу - такие BBS еще есть) еще пока вообще не брался. Если есть у кого подробная инфа (желательно на русском), буду благодарен.

Error404
08.02.2019, 18:42
Уважаемый asve79, кстати, делает сейчас примерно то же, что и я - я сейчас тоже пишу терминалку, только под ОС TASiS, чтобы запускать ее на АТМ2+ и Пентеве. Уже готов ANSI-драйвер (на его основе сделал просмотрщик ANSI-графики - на форуме ссылку уже кидал: http://atmturbo.nedopc.com/download/isdos/ansiview/ansiview.ipc) и частично оконный интерфейс - работа в самом разгаре. Пока еще не брался за коммуникационные процедуры. Только накачал пока материалы по X- Y- Z- "модемам", по АТ-командам для модем. А за телнет (а у меня планируется возможность коннектиться как дозвоном по диалапу - такие BBS еще есть) еще пока вообще не брался. Если есть у кого подробная инфа (желательно на русском), буду благодарен.

Задача стоит принципиально написать что-то своё с окошками? Если нет, то я бы смотрел в сторону портирования общепризнанных терминальных утилит с соседних платформ. Например, можно взять Кермит или Qterm с CP/M. Ссылку на исходники последнего я приводил чуть ранее по треду, пробовал его на Орионе. Этот терминал большинством пользователей CP/M признавался лучшим, там есть эмуляция VT-100 и VT-52, AT-команды со скриптованием (целый квази-язык для дозвона по условиям), два окна (а больше - зачем), совместимость с Кермит, поддержка X-modem и Z-modem. Поправить вывод на экран, RS-232 и файловое IO, и вперед за орденами. :)

X-модем в принципе не сложен, я как-то даже сам писал (получение файла скопипастил у caro, отправление дописал сам - там похоже и единственная заковыка была с CRC, исходник тоже есть выше по треду). На основе этого слепил на скорую руку BIOS для Ориона где комп стартуя загружался по RS-232 (типа как LAN-boot). Бессмысленно конечно (как любая завязка на пристяжной PC), но забавно.

asve79
09.02.2019, 17:09
Уважаемый asve79, кстати, делает сейчас примерно то же, что и я - я сейчас тоже пишу терминалку, только под ОС TASiS, чтобы запускать ее на АТМ2+ и Пентеве. Уже готов ANSI-драйвер (на его основе сделал просмотрщик ANSI-графики - на форуме ссылку уже кидал: http://atmturbo.nedopc.com/download/...w/ansiview.ipc) и частично оконный интерфейс - работа в самом разгаре. Пока еще не брался за коммуникационные процедуры. Только накачал пока материалы по X- Y- Z- "модемам", по АТ-командам для модем. А за телнет (а у меня планируется возможность коннектиться как дозвоном по диалапу - такие BBS еще есть) еще пока вообще не брался. Если есть у кого подробная инфа (желательно на русском), буду благодарен.

Ого.
Я сегодня 2 терминала напилил. Под разные порты evo (ZIFI и RS232). Но пока с багами. Один хорошо отправляет, второй хорошо принимает. Прокуриваю мат часть. Возможно где-то нестыковка скоростей.

ссылка в гитфабе. https://github.com/asve79/z80-terminal

Кстати интересная ситуация. Пойду-ка сделаю топик, в котором можно будет писать о том, над чем работает.
Быть может кучу времени друг-друга съекономим. )

asve79
11.02.2019, 10:31
asve79, вот описание набортного ком порта zxmc2. В ней организован стандарт Кондратьева. Также мультикарта встроена в феникс и есть под слот zxbus. Описание портов фирменного ком порта Профи я напишу чуть позже.

По сабжу, скажи, а сейчас профик понимает sna?

Первым этапом пилю терминалку, чтобы понимать что да, прямая работа с потом работает как надо, следующим этапом уже будет обвязка под zifi.

2All:
Подумываю про "заворачивание" модуля в вид API. Пока не получается цельной картинки. Ведь по-хорошему модуль должен быть "резиновый" т е не привязываться к конкретным адресам, т е использовать JR-ки. А это к сожалению невозможно ввиду объема.
Ну и плюс реализация разных методов работы с портом на разных платформах имеет свои тонкости (даже EVO vs TS-Conf). Как все будет шуршать гладко, займусь стандартизацией.

vair
19.04.2023, 11:19
будет ли терминал работать на Ленинград 2 48К?
Есть план добавить сериал порт на комп и использвать для связи с убунтосервером
(SNA to TAP converter не нашел под линукс, проверить не могу)

Максагор
20.04.2023, 13:31
Вот тут исходники реализации xModem

Есть ли где исходники реализации Y и Z-модемов?

vair
20.04.2023, 18:08
будет ли терминал работать на Ленинград 2 48К?
Есть план добавить сериал порт на комп и использвать для связи с убунтосервером
(SNA to TAP converter не нашел под линукс, проверить не могу)
конвертнул через snap2tzx
и вот такая красота)
наверное ждет ответ с устроиства?
78792

Ну думаю фигня щас просто коммандой в Бейсике
78793
но это видимо для 128K, потому как мигает вопросик....ненравится формат ему(


Должнa же быть какая нить команда ввида?

OPEN #1, "F8EF,15,0"

OlegarX
20.04.2023, 20:27
но это видимо для 128K
Скорее это для Interface1