PDA

Просмотр полной версии : Обсуждение: Локальная сеть корвет



esl
20.05.2014, 13:07
Предлагаю обсуждение вести в отдельной теме
давайте оригинальные темы оставим как справочники !
-------
http://zx.pk.ru/showthread.php?t=23456

CodeMaster
20.05.2014, 13:16
Осталось описать сеансовый уровень сети - порядок передачи пакетов.

И софтинку которая позволит загружать софт в Корветы с РС.

esl
20.05.2014, 13:33
ага, эмулятор "РМП"

кстати, имело бы смысл сделать софт который бы позволил записать дискету на ПК8010 залив ее по сети с PC
это конечно займет время, но позволит сделать системную дискету ;)

конечно это для ругой теме, но главное иметь описание протокола !
... и поддержку в эмуляторе было бы полезно допилить ;)
очень надеюсь что информация из темы поможет

CodeMaster
20.05.2014, 13:37
а тут оставить оригинальный текст и правки ?

Тогда тему надо переименовать "Реализация ЛВС в ОПТС 2.0 ПК Корвет" ну или как-то так, а то темы дублируют друг друга.


В своей серверной программе на PC

Она будет доступна народу?

forth32
20.05.2014, 13:39
Софтинку такую я уже написал, и она более-менее работает. Но предлагать ее местной общественности я даже не знаю, стоит ли. Дело в том, что написана она под Linux, поскольку это моя единственная рабочая ОС как дома, так и на работе. А здесь, как я понмаю, почти все сидят под виндой. С этой ОС я мало знаком, программировать под нее не умею и осваивать не особо желаю :)

Правда, под windows существует проект cygwin, создающий под виндой GNU-окружение и обеспечивающий компилятор GCC. Если есть желающие, можете попробовать собрать мою программу под cygwin, может быть и заработает. Программа к особенностям linux не привязана, из системных вещей она использует только termios для работы с последовательным портом. Если cygwin умеет эмулировать termios, то программа вполне должна и под видной заработать.

CodeMaster
20.05.2014, 13:42
записать дискету на ПК8010

А как к нему подключить дисковод?


А здесь, как я понмаю, почти все сидят под виндой.

Думается многие поступятся своими религиозными убеждениями и загрузят Linux c LiveCD ради такого дела.

Опять же будут исходники, впилят и в эмулятор и может отдельной прогой пересоберут.

esl
20.05.2014, 14:12
Для типа данных 3 и 7 происходит прием последовательности байтов и размещение их, начиная с указанного в пакете R адреса.

Так можно передать в РМУ самозапускаемую программу в машинных кодах. Я пробовал TETRIS и GONKI - запускаются и работают.

в архивах есть софт с расширением .bin
он как раз и передавался на РМУ c помощью STS с адресса 0x9000? (или 8000)



Так что можно писать по любому адресу - и в АЦЗУ, и в регистры периферии, и в область ROM (хотя это и бессмысленно).
запись в ПЗУ приводит к записи в ОЗУ "под ним"
т.е. в теории можно передать кусок в пзу и переключить конфигурацию ...



COM-сообщения - очень полезный инструмент для взаимодействия с сервером. В своей серверной программе на PC я сделал режим, при котором прямо с РМУ можно запросить загрузку данных из файла на сервере, например COM "@L PROG.BAS" пересылает программу PROG.BAS с PC на РМУ. Так можно эмулировать возможности дискового бейсика на ПК8010, не имеющем дисковода.

Вот вроде пока и все, что я хотел рассказать по сети корвет.

на корвете была софтина SWM (Система Виртуальных Машин)
Copyright By Igor Yaroshevich (C)

кусок из доки



ВНИМАНИЕ
Загружена система поддержки дисковой системы на РМУ
БАЗОВЫЕ КОМАНДЫ :
COM"имя файла.тип,R" - для чтения с диска программы
COM"имя файла.тип,W" - для записи файла на диск
COM"имя файла.тип,B" - для чтения с диска .BIN-файла
COM"имя файла.тип,C" - для чтения с диска .COM-файла
COM"?" - Помощь по командам


Краткий справочник команд
Все команды набираются однотипно и имеют следующий формат:
COM"имя файла.тип,буква"
где буква - может принимать одно из следующих значений:
R - читать файл с диска
W - записать файл на диск
B - читать с диска BIN-файл
C - читать с диска COM-файл
Команда чтения BIN-файла имеет немного
другой формат: COM"имя файла.тип,B,xxxx"
где xxxx - шестнадцатеричный адрес
загрузки файла в оперативную память для выполнения.


и главный вопрос ?
а сервер будет доступен ??

---------- Post added at 12:52 ---------- Previous post was at 12:51 ----------


А как к нему подключить дисковод?



Думается многие поступятся своими религиозными убеждениями и загрузят Linux c LiveCD ради такого дела.

Опять же будут исходники, впилят и в эмулятор и может отдельной прогой пересоберут.
кончено опечатался, к 8020
эт те у кого есть 8020 но нет 5" дисковода на PC

---------- Post added at 12:54 ---------- Previous post was at 12:52 ----------


Софтинку такую я уже написал, и она более-менее работает. Но предлагать ее местной общественности я даже не знаю, стоит ли. Дело в том, что написана она под Linux, поскольку это моя единственная рабочая ОС как дома, так и на работе. А здесь, как я понмаю, почти все сидят под виндой. С этой ОС я мало знаком, программировать под нее не умею и осваивать не особо желаю :)

я уже года 2 под убунтой живу ;)
в конце концов, можно ведь и виртуалку сделать кому надо под виндой
com порт же легко пробрасывается в вируталку!

---------- Post added at 13:08 ---------- Previous post was at 12:54 ----------


Вдогонку - забыл описать широковещательный режим. В этом режиме возможна только передача данных от сервера к РМУ, зато сразу во все. Протокол при этом односторонний - передает только сервер, а клиенты молча собирают данные в буфер. Никаких пакетов подтверждения Y в этом случае, естественно, не посылается. Порядок передачи данных тут такой:

A(0) R D D D. .... Z

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

гм, а у меня в голове крутится другой сценарий
что выбирается РМУ ответчик, и он оди шлёт подтверждения
иначе сильно протокол надо курочить ??

---------- Post added at 13:11 ---------- Previous post was at 13:08 ----------


Тогда тему надо переименовать "Реализация ЛВС в ОПТС 2.0 ПК Корвет" ну или как-то так, а то темы дублируют друг друга.
?

у ОПТС1 очень похожая сеть
по крайней мере по моим расскопкам (до конца не доведенным)
и на первый взгляд совместима

у меня пару вопросов есть, но надо посмотреть предварительно.

и есть такое впечталения что ОПТС 1.x очень мало встречалась в "диком виде", в основном были 2.0

---------- Post added at 13:12 ---------- Previous post was at 13:11 ----------


а то темы дублируют друг друга.


про дублируют не понял :(
ткни пальцем!

forth32
20.05.2014, 14:13
Да мне же не жалко программы, если есть желающие попробовать - буду только рад. Тогда я немного причешу исходник и вечером залью сюда.

Могу и IDA-базу ОПТС2.0 залить, если найдется куда. Она все же немаленькая, а всякие файлообменники типа рапидшар я ненавижу всей душой. Могу расшарить через яндекс-диск.
Только там, естественно, не весь ОПТС и бейсик до последнего байта раскопан, а только то, что меня интересовало, и то не все. Процесс раскопки продолжается понемногу в свободное врем. И часть коментариев в базе - это только предположения, а не истина в последней инстанции.

esl
20.05.2014, 14:17
Да мне же не жалко программы, если есть желающие попробовать - буду только рад. Тогда я немного причешу исходник и вечером залью сюда.

Могу и IDA-базу ОПТС2.0 залить, если найдется куда. Она все же немаленькая, а всякие файлообменники типа рапидшар я ненавижу всей душой. Могу расшарить через яндекс-диск.
Только там, естественно, не весь ОПТС и бейсик до последнего байта раскопан, а только то, что меня интересовало, и то не все. Процесс раскопки продолжается понемногу в свободное врем. И часть коментариев в базе - это только предположения, а не истина в последней инстанции.

яндексдиск - это хорошая идея,
у меня тоже есть разной степени раскопки ОПТС1.х, ОТПС2.х
если надо ....

forth32
20.05.2014, 14:35
ага, эмулятор "РМП"

кстати, имело бы смысл сделать софт который бы позволил записать дискету на ПК8010 залив ее по сети с PC
это конечно займет время, но позволит сделать системную дискету ;)


Вообще-то это сделать вроде несложно. Точнее говоря, надо написать самозапускающийся бинарник, который отформатирует дискету, а затем примет по сети образ дискеты посекторно и запишет на дискету. Но вот тут как раз проблема. Я уже лет 20 наверное не писал в кодах 8080. А программировать на низком уровне контроллер дисковода и вообще не приходилось ни разу. Правильнее было бы залить по сети BIOS+BDOS+CCP и запустить, а потом туда же по сети отправить и утилиты format, сетевого обмена итд. Вроде бы CP/NET так и работает.

Плюс к тому, писать на самом корвете не особо комфортно. Нужен кросассемблер 8080 под линукс (такой есть) и день на его освоение :) Будет время - попробую сделать. Тем более что я планировал сделать эмулятор сетевой CP/M, это будет одним из этапов разработки.

---------- Post added at 14:35 ---------- Previous post was at 14:25 ----------

По просьбам трудящихся выкладываю IDA-базу ОПТС2.0, по которой я разбирал сетевой протокол.

http://yadi.sk/d/8xe1iJAEQo4rH

Если кто тоже занимался раскопкой ОПТС и имеет такие базы - поделитесь сюда, всегда легче заниматься раскопкой, когда подкидывают свежих идей.

esl
20.05.2014, 15:04
Вообще-то это сделать вроде несложно.

ага, тут в общем надо "просто сделать" ;)

Точнее говоря, надо написать самозапускающийся бинарник, который отформатирует дискету, а затем примет по сети образ дискеты посекторно и запишет на дискету. Но вот тут как раз проблема. Я уже лет 20 наверное не писал в кодах 8080. А программировать на низком уровне контроллер дисковода и вообще не приходилось ни разу. Правильнее было бы залить по сети BIOS+BDOS+CCP и запустить, а потом туда же по сети отправить и утилиты format, сетевого обмена итд. Вроде бы CP/NET так и работает.

есть исходники FORMAT и COPYT (посекторный копировщик)
т.е. чистый заливаемый фоматировщик - вообще легко.
возможно сразу сделать что-то типа залили код
он форматирует диск и ждёт имиджа с PC, который передается

что-то типа http://adtpro.sourceforge.net/
кстати, можно тогда уже в обе стороны, и читать диски

по поводу cp/net не скажу, но
достаточно легко сделать сетевой диск в существующие cp/m
там несколько сотен байт есть, драйвер который принимает/передает 128 байт точно влезет

кроме того для корвета есть же KORNET, можно просто его протокол эмулировать
и cp/n 90
и еще



Плюс к тому, писать на самом корвете не особо комфортно. Нужен кросассемблер 8080 под линукс (такой есть) и день на его освоение :) Будет время - попробую сделать. Тем более что я планировал сделать эмулятор сетевой CP/M, это будет одним из этапов разработки.

я использую sjasmplus, но мне удобнее писать в мнемонике z80
а так посматривал и на другие ассемблеры, их есть.



По просьбам трудящихся выкладываю IDA-базу ОПТС2.0, по которой я разбирал сетевой протокол.
http://yadi.sk/d/8xe1iJAEQo4rH

Если кто тоже занимался раскопкой ОПТС и имеет такие базы - поделитесь сюда, всегда легче заниматься раскопкой, когда подкидывают свежих идей.

вот ВСЯ моя папка с дизасмами относящаяся к Корвету
https://dl.dropboxusercontent.com/u/490774/esl-korvet-ida-src-20140520.7z
там постоянный бардак, но хоть немного по темам разбросано
несколько копия - это разные подходы, возможно с разными интересами

про ОПТС2 смотреть наверное имеет смысл
ida/roms/OPTS20/rom2, там немного бейсика, и разобран COLDBOOT
судя по названия отдельно есть ida/roms/ROM-Lan на основе opts1.1

очень интересная папка Sources
там есть в папке ROMs куски исходников???? пзу
имхо версии до 1.1, некой рабочей

в общем есть что посмотреть ;)

и из полезного, там есть куча .idc
c кучей enum для бис
переменными биоса
конфигураций памяти
функций доса
etc ...
т.е. загрузил нужную IDC и нужные переменные уже есть

esl
20.05.2014, 18:31
кстати, откопал свои записи по протоколу сетевому
там есть некие отличия

https://www.evernote.com/shard/s3/sh/c5aecaed-31f4-43a8-b13b-0d21f1647167/66a17eb762f1f2b97cfeba15412f7a9d

---------- Post added at 16:31 ---------- Previous post was at 16:26 ----------

и еще, нашел у себя книжечку из комплекта, набрал ее в своё время
https://www.evernote.com/shard/s3/sh/8fe56d11-d671-434a-92c1-9a990cc53e6e/328ceb7693763a062ca0417e12c96bd5

---------- Post added at 17:31 ---------- Previous post was at 16:31 ----------

сообщени с сервером перенес в оригинальный тред ;)
имхо ему там самое место

p.s. я сегодня наперносился больше чем за всё время, буйный я

forth32
20.05.2014, 18:35
Выложил исходники программы работы с сетью в первоначальную тему (где описание протокола), чтобы было все в одном месте. Если есть желание обсудить - то пишите сюда.

esl
20.05.2014, 18:40
посылать программы в РМУ по запросу с самих РМУ (COM-командами). Список команд есть в исходниках, на всякий случай привожу сюда:


@L file загрузка бейсик-программы
@S file сохранение бейсик-прогаммы
@LB file adr загрузка двоичного файла с адреса adr
@LBR file adr загрузка двоичного файла с адреса adr c автозапуском
@SB file adr len сохранение участка памяти с адреса adr длиной len

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


ой, переделывать точно смысла нет !
я привел SWM как пример реализации той-же идеи, не более !
тем более этот синтаксис явно приятнее!

forth32
20.05.2014, 19:57
кстати, откопал свои записи по протоколу сетевому
там есть некие отличия

Ага, вот наконец я посмортел. Собственно, отличий не особо много, тем более что у тебя основная масса полей помечена знаком "?" - видимо признак недостоверности информации.

Но кое-что существенное есть.

1. У тебя пакет Z на 1 байт больше чем у меня - после буквы Z идет еще один байт 37h. Сколько я видел пакетов Z - вроде бы ни разу не встречал такого. Специально еще раз посмотрел процедуру net_parser - в пакете Z вообще ничего не анализируется, кроме КС и самой буквы Z. Хотелось бы уточнить, как ты получил такой пакет.

2. У тебя в качестве типа данных 1 указывается ГЗУ. Откуда такая информация??? Я тут всю жопу прочесал о назначении этого типа. Диапазон адресов ты указал совершенно верно - 91D1-F000, как и для бейсик-программы. И это, в принципе, попадает в область ГЗУ C000-FFFF, хотя и значительно перекрывает ее, при этом не доезжая до конца. НО. Чтобы записать ГЗУ, надо переключить конфигурацию памяти. А сетевой драйвер этого НЕ ДЕЛАЕТ. Я еще раз просмотрел базу - нет из этой области обращений к системному регистру. Только косвенно - при очистке ГЗУ по приему данных типа 0.
В результате при приеме данных типа 1 принимается массив данных по указанным адресам, и все. С ним ничего больше не делается. Для типа 2 происходит инициализация бейсик-программы по этим адресам, а для этого типа - ничего. Зачем он нужен - я не понимаю.


и еще, нашел у себя книжечку из комплекта, набрал ее в своё время

О... А я эту книжку искал по всей сети. Знал ведь, что такая существует. Правда, в результате она бы мне скорее навредила при разборе :) Описание весьма странное. Мало того что очень поверхностное, так еще и не соответствует действительности.
Там описываются пакеты типа F и B - начала и конца файла. Реально таких типов ОПТС не поддерживает. Более того - там вообще нет понятия файла, только отдельные блоки данных, без имени.

Или вот упаковочные символы. Там их 2 - # и &. Но в ОПТС2.0 символа & нет. Место под него, похоже, зарезервировано (а я все думал, зачем нужна ячейка, которую я назвал Bit7_pack_char), но реально он не используется.

И насчет ответчика в режиме широковещательной передачи. Я так и не понял, как его сконфигурировать. При получении широковещательного адреса РМУ просто запрещает передачу ответов, и все.
А так описание протокола, в среднем, похоже. Завтра немного очухаюсь - почитаю поподробнее.

И все же на главный вопрос в книжке ответа нет. Как физически устроена сеть - двухпроводная или трехпроводная? Неужели это так и останется страшной тайной...

esl
20.05.2014, 20:19
И все же на главный вопрос в книжке ответа нет. Как физически устроена сеть - двухпроводная или трехпроводная? Неужели это так и останется страшной тайной...

вот в памяти сидит сеть была толстым проводом многожильным проводом (типа сетевого)
сами разъемы были такие квадратные серебристые (что-то похожее на http://www.kramerelectronics.com/images/products/highres/c-d9f-3pm.jpg но серебристое)
но это было СТОЛЬКО лет назад ...

откуда данные - не помню :(
про ГЗУ - согласен, такого небыло, хотя для кувт было бы наверное полезно
еще откопал вот такой .h файл от сетевой библиотеки

кстати там была фраза " - адрес байта для возврата номера контрольного РМУ-ответчика;"

esl
20.05.2014, 20:37
хотя по схеме на разъеме
вход, выход, земля ...

" Топологически сеть представляет собой двунаправленную
магистраль, соединяющую все рабочие места комплекса. Линия
связи выполнена в виде витой пары и прокладывается стационарно.
При работе с адаптером локальной сети необходимо установить
перемычку между контактами 04 и 02 соединителя адаптера.
"

marinovsoft
20.05.2014, 22:07
Теперь насчет параметров последовательного канала. Скорость передачи здесь всегда 19200 baud.

На ПК80х0 19600 было, а не 19200?

Во времена, когда не было дисковода, я пытался передавать на пк8010 с PC данные, но максимум что получалось - завесить пк8010. Мне тогда показалось, что проблема в разнице скоростей 19200 на PC и 19600 на ПК80х0. Была идея в ближайшее время вернуться к этому вопросу. Теперь благодаря вам уже не придется :)

Развязка была оптрон PC817.

forth32
21.05.2014, 08:42
вот в памяти сидит сеть была толстым проводом многожильным проводом (типа сетевого)сами разъемы были такие квадратные серебристые (
но это было СТОЛЬКО лет назад ...


Похоже, и правда экранированная толстая витая пара. Такие кабели до сих пор в телефонной связи используются. А серебристые разъемы - это точно советсткий вариант DB-9. Они всегда делались в металлическом корпусе. Еще у них, как водится, нумерация пинов была зеркальной по отношению к стандартной DB-9, это надо обязательно учитывать при подключении к разъему LAN, я уже нарвался.



еще откопал вот такой .h файл от сетевой библиотеки


А сама библиотека у тебя есть? Вот кого я бы с удовольствием поковырял. Тогда и насчет ответчика можно будет разобраться.

---------- Post added at 08:23 ---------- Previous post was at 08:05 ----------


Топологически сеть представляет собой двунаправленную
магистраль, соединяющую все рабочие места комплекса. Линия
связи выполнена в виде витой пары и прокладывается стационарно.
При работе с адаптером локальной сети необходимо установить
перемычку между контактами 04 и 02 соединителя адаптера.
"

Ну что ж, это практически отвечает на мой вопрос. 02 и 04 - это как раз вход и выход сети. Значит, линия связи была все же двухпроводной - данные (в обе стороны по одному проводу - отсюда и двунаправленная) и земля. Между ними на конце - нагрузочный резистор. Непонятно только, зачем делать именно витую пару. Она имеет смысл только для симметричных сигналов, как в UTP кабеле. Здесь же сигналы несимметричны, и от витухи больше вреда будет, чем пользы - у витой пары межпроводная емкость заметно выше, чем у просто лежащих рядом двух проводов...

---------- Post added at 08:42 ---------- Previous post was at 08:23 ----------


На ПК80х0 19600 было, а не 19200?

Точнее 19531. Тактовый сигнал С1, входящий в ВВ51, имеет частоту 312500Гц, и делится в ВВ51 еще на 16. Но разница в полтора процента для асинхронной связи вполне допустима. Более важно, что использовн контроль на нечетность.


Развязка была оптрон PC817.
Следует еще учесть, что внутри корвета сигнал один раз уже инвертируется. Если твой оптрон его инвертирует еще раз - получится сигнал в противофазе и никакой связи не будет. Это я так, на всякий случай. Думаю, что на самом деле ты это учел.


Во времена, когда не было дисковода, я пытался передавать на пк8010 с PC данные, но максимум что получалось - завесить пк8010.

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

esl
22.05.2014, 00:49
А сама библиотека у тебя есть? Вот кого я бы с удовольствием поковырял. Тогда и насчет ответчика можно будет разобраться.

есть, но пользы то от нее, она в странном формате .a
там она и доки
но ее саму копать смысла мало
в моих ida файлахх что выложил, есть папку NET
там кучка сетевых прог
вроде в postman начал разбирать либу

STS, STS2 - сетевые программы из поставки.
в остальных похоже эта библиотека.
там кстати есть нечто по имени TESTLS
какой-то тест сети из стандартной поставки, доки нет :(
вроде поддержка есть в пзу.

esl
22.05.2014, 01:58
Похоже, и правда экранированная толстая витая пара. Такие кабели до сих пор в телефонной связи используются. А серебристые разъемы - это точно советсткий вариант DB-9. Они всегда делались в металлическом корпусе. Еще у них, как водится, нумерация пинов была зеркальной по отношению к стандартной DB-9, это надо обязательно учитывать при подключении к разъему LAN, я уже нарвался.


не, корпус был пластиковый, серебрянный,

можешь нарисовать/сфоткать как ДОЛЖНО быть
чтоб те кто будет повторять не стояли на граблях!

---------- Post added 22.05.2014 at 00:11 ---------- Previous post was 21.05.2014 at 23:52 ----------

кстати, сетевая ос же была, я уже писал
вот кусок из доки

понятно что там свой пртокол




2. ОРГАНИЗАЦИЯ РАБОТЫ В ЛОКАЛЬНОЙ СЕТИ

Организация работы ЛС "КОРНЕТ" принципиальным образом
отличается от организации работы ЛС, применяемой ранее в
КУВТ "КОРВЕТ", под управлением программы STS.
Работа ЛС под управлением прогрммы STS направлена на
использование КУВТ "КОРВЕТ" лишь для изучения различного
учебного материала, подготовленного учителем, или програм-
мирования на языке BASIC.
ЛС "КОРНЕТ" позволяет использовать КУВТ "КОРВЕТ" как
равноценные ПЭВМ, связанные друг с другом.
Основные отличия ЛС под управлением программы STS и
СОС "КОРНЕТ" приведены в таблице 1.
ТАБЛИЦА 1
Основные отличия STS от СОС "КОРНЕТ"
__________________________________________________ ___________
STS I СОС "КОРНЕТ"
____________________________I_____________________ ___________
1. Инициатором обмена явля-I 1. Инициатором обмена является
ется учитель (РМП). Он оп-I ученик. Он определяет что ему
ределяет кому, что пере- I нужно загрузить с любого дис-
дать и что принять. I ка. И может сохранить файл (в
I своем разделе) на диске.
2. Для подключения РМУ к об-I 2. РМУ включается в процессе
мену необходимо, чтобы РМУI обмена после передачи с РМП
к моменту запуска STS былоI загрузчика и ОС. Возможен вы-
включено. Программа самаI ход в режим встроенного BASIC
определяет с какими РМУ I с программным отключением от
вести обмен. I ЛС.
3. ЛС настроена на передачуI 3. На РМУ работают любые прог-
файлов для интерпритатораI раммы, которые работают и на
BASIC или специально под-I РМП. Ограничение - вывод на
готовленных программ. I печать.
4. Для инициализации "элек-I 4. Формирование "электронного
тронного диска" необходимаI диска" встроено в самой сис-
специальная программа. I теме как на РМП,так и на РМУ.
5. Возможен прямой вывод ин-I 5. Реализован обмен только с
формации на экран от РМП кI дисковым устройством.
РМУ. I
____________________________I_____________________ ___________

это просто вспомнилось к тому что в этой сети инициатором обмена может быть любая рму.
обмен таки только с РМП

---------- Post added at 00:58 ---------- Previous post was at 00:11 ----------

ага, вроде нашел откуда табличка адресов взялась
там в архиве есть файл R002.ASM
вроде исходник какой-то версии ОПТС, или скорее кусок исходника

там такая табличка



RET
TABOBL: DW 0FC00H ;Нач.адрес АЦЗУ
DW 0FFFFH ;конечный адрес АЦЗУ
DW 91D1H ;Нач. адрес гр.ЗУ
DW 0F000H ;Конечный адрес гр.ЗУ
DW 91D1H ;Нач.адрес БЭЙСИКа
DW 0F000H ;Kонеч.адрес БЕЙСИКа
DW 6800H ;Начальный адрес ОЗУ
DW 0F700H ;Конечный адрес ОЗУ
DW 0 ;диск
DW 0 ;диск
DW 6201H ;Нач.адрес ПЯ
DW 6300H ;конеч.адрес ПЯ
DW 6200H ;нач.адрес признака заполнения ПЯ
DW 6201H ;конеч.адрес признака заполнения ПЯ
DW 6800H
DW 0F700H

forth32
22.05.2014, 14:43
есть, но пользы то от нее, она в странном формате .a
там она и доки
но ее саму копать смысла мало

Ну почему же странном? Это обычный .lib, только переименованный в .A. Видимо, таков стандарт наименования файлов в микродос. Кстати, в юниксах и по сей день объектные библиотеки имеют такое расширение.

Библиотекарь lib запросто разобрал этот файл на 2 объектных модуля - net.r и stt2012.r. Можно копать и их, поскольку формат .r - файлов полностью описан в доке по системе программирования С.

Но я пошел более простым путем. Создал программу-пустышку -


#include "net.h"
int main() {
char str[40];
net(1,str)
return 0
}


Оттранслировал и скомпоновал с этой библиотекой. Получился файл net.com, который я теперь сижу и потихоньку ковыряю в IDA. Преимущество такого подхода в том, что в полученном COM-файле практически нет лишнего мусора - только сетевая библиотека и все. Кроме того, линкер мне выдал карту компоновки, содержащую абсолютные адреса всех глобальных имен в программе. То есть не надо искать main, net итд, продираясь сковзь корявый стартовый код сишного рантайма.


там кстати есть нечто по имени TESTLS
какой-то тест сети из стандартной поставки, доки нет :(
вроде поддержка есть в пзу.

О. А вот это надо посмотреть будет. Но вначале я все же хочу разобраться с вопросом о широковещательном ответчике сети. Разберу ветку установки логического соединения сетевой библиотеки.

---------- Post added at 14:43 ---------- Previous post was at 14:27 ----------



можешь нарисовать/сфоткать как ДОЛЖНО быть
чтоб те кто будет повторять не стояли на граблях!

Ну, фоткать там особо нечего, разъем как разъем.
Если подключать ся к этому разъему стандартным DB-9 соединителем, то распиновка будет такая:

1
2 OUTLN, выход данных
3 GND
4 INNL, вход данных
5 +5v
6-9 - входы установки адреса РМУ, А0-А3

Но тут надо учесть еще вот что. Корвет у меня неполноценный, точнее говоря, мне досталась только слегка покуроченная плата 8010, без клавиатуры, корпуса итд. Плату я отремонтировал, допаял недостающие до 8020 элементы, а вот разъемы поставил стандартные угловые DB-9, коих на материнских платах как грязи. Повезло, что они полностью подошли по посадке. Однако на картинках я вижу, что в оригинале разъемы крепились на заднюю металлическую пластину, а к плате подключались проводами. В каком порядке они подключались - я не знаю. Может быть и зеркально, хотя и вряд ли. Поэтому на всякий случай лучше вызвонить, к какой из ножек идет +5V. И сразу станет понятна цоколевка разъема.



это просто вспомнилось к тому что в этой сети инициатором обмена может быть любая рму. обмен таки только с РМП

Корнет - это отдельная интересная песня. Было бы у меня 2 корвета - мог бы поснифать протокол обмена между ними, благо моя программа это умеет. Мне вот интересно, как они боролись с коллизиями, если любой РМУ в люой момент может начать срать в линию связи. Ладно, IDA есть, может что-нибудь придумаю.


ага, вроде нашел откуда табличка адресов взялась
там в архиве есть файл R002.ASM
вроде исходник какой-то версии ОПТС, или скорее кусок исходника


А, ну понятно. Видел я этот исходник среди твоих файлов. Он странный. Не похож на оригинальный исхожники от авторов корвета. Скорее, это кто-то уже ковырял ОПТС в каком-то примитивном дизасме и написал все это в порядке предположения.

Кстати, хочу спросить. Ты в какой версии IDA делаешь свои базы? У меня ни 4.7 ни 5.5 их не открывают. В результате я еще ни одной твоей баз так и не посмотрел...

esl
22.05.2014, 16:38
Ну почему же странном? Это обычный .lib, только переименованный в .A. Видимо, таков стандарт наименования файлов в микродос. Кстати, в юниксах и по сей день объектные библиотеки имеют такое расширение.

Библиотекарь lib запросто разобрал этот файл на 2 объектных модуля - net.r и stt2012.r. Можно копать и их, поскольку формат .r - файлов полностью описан в доке по системе программирования С.

Но я пошел более простым путем. Создал программу-пустышку -


#include "net.h"
int main() {
char str[40];
net(1,str)
return 0
}
Оттранслировал и скомпоновал с этой библиотекой. Получился файл net.com, который я теперь сижу и потихоньку ковыряю в IDA. Преимущество такого подхода в том, что в полученном COM-файле практически нет лишнего мусора - только сетевая библиотека и все. Кроме того, линкер мне выдал карту компоновки, содержащую абсолютные адреса всех глобальных имен в программе. То есть не надо искать main, net итд, продираясь сковзь корявый стартовый код сишного рантайма.

удобно, а я как-то с такими вещами не знаком ;(

[QUOTE=forth32;712176]
Корнет - это отдельная интересная песня. Было бы у меня 2 корвета - мог бы поснифать протокол обмена между ними, благо моя программа это умеет. Мне вот интересно, как они боролись с коллизиями, если любой РМУ в люой момент может начать срать в линию связи. Ладно, IDA есть, может что-нибудь придумаю.

ага, еще есть некая ОС "СФЕРА" (возможно как-то соотносится с корнетом
и естьт еще CP/N-90
похоже она попроще будет чем корнет.



А, ну понятно. Видел я этот исходник среди твоих файлов. Он странный. Не похож на оригинальный исхожники от авторов корвета. Скорее, это кто-то уже ковырял ОПТС в каком-то примитивном дизасме и написал все это в порядке предположения.

мне кажется что это просто некий промежуточный код некий
т.к. смущает нам наличие макросов ...


OTL SET 0
MACLIB KERMACT

....

IF OTL EQ 1
PRINT C10
ENDIF

.....

IF OTL EQ 1
C1: DB 0DH,0AH,'ПАКЕТ А ПРИНЯТ$'
C2: DB 0DH,0AH,'ПАКЕТ R ПРИНЯТ$'
C3: DB 0DH,0AH,'ПАКЕТ D ПРИНЯТ$'
C4: DB 0DH,0AH,'ПАКЕТ Z ПРИНЯТ$'
C5: DB 0DH,0AH,'ПАКЕТ S ПРИНЯТ$'
C6: DB 0DH,0AH,'ACK$'
C7: DB 0DH,0AH,'NACK$'
C8: DB 0DH,0AH,'ПАКЕТ А ПЕРЕДАН$'
C9: DB 0DH,0AH,'ПАКЕТ R ПЕРЕДАН$'
C10: DB 0DH,0AH,'ПАКЕТ D ПЕРЕДАН$'
C11: DB 0DH,0AH,'ПАКЕТ Z ПЕРЕДАН$'
C12: DB 0DH,0AH,'ПАКЕТ Y ПРИНЯТ$'
PRTSTR: LDAX D
CPI '$'
JZ R
PUSH D
PRTSYM
POP D
INX D
JMP PRTSTR
ENDIF
END INPKT


это имхо говорит что его как минимум компилили с этими флагами ...


Кстати, хочу спросить. Ты в какой версии IDA делаешь свои базы? У меня ни 4.7 ни 5.5 их не открывают. В результате я еще ни одной твоей баз так и не посмотрел...

ida 6.1
я запускаю IDAQ ;)
http://rutracker.org/forum/viewtopic.php?t=3625386

---------- Post added at 14:21 ---------- Previous post was at 14:08 ----------

кстати про TESTLS
похоже он есть только в ОПТС 1
вот кусок из R002.ASM



;
; ВЕКТОР ПЕРЕХОДОВ
;
JMP LOADBS ; ПЕРЕХОД К БЕЙСИКУ
JMP LOADTST ; ПЕРЕХОД К ЗАГРУЗКЕ С ПРОВЕРКОЙ
; ВХОДЫ В ДРАЙВЕР КОНСОЛИ
JMP CONST ; ОПРОС СОСТОЯНИЯ КОНСОЛИ
JMP CONIN ; ВВОД С КОНСОЛИ
JMP CONOUT ; ВЫВОД НА КОНСОЛЬ
; ВХОДЫ В ДРАЙВЕР КАССЕТНОГО МАГНИТОФОНА
JMP TAPION ; ЧТЕНИЕ МАРКЕРА
JMP TAPIN ; ЧТЕНИЕ БАЙТА
JMP TAPIOF ; ОСТАНОВ ЧТЕНИЯ
JMP TAPOON ; ЗАПИСЬ МАРКЕРА
JMP TAPOUT ; ЗАПИСЬ БАЙТА
JMP TAPOOF ; ОСТАНОВ ЗАПИСИ
JMP MTRCONT ; УПРАВЛЕНИЕ МОТОРОМ
JMP SETRATE ; УСТАНОВКА СКОРОСТИ ЗАПИСИ
; ВХОДЫ В ДРУГИЕ ПОДПРОГРАММЫ
JMP LOADOS ; ПЕРЕХОД К ЗАГРУЗКЕ ОС
JMP TLS ; ПЕРЕХОД К ТЕСТУ ЛОКАЛЬНОЙ СЕТИ
JMP SND ; ВЫВОД ОДИНОЧНОГО ЗВУКОВОГО СИГНАЛА


в ОПТС 1 есть код, а в ОПТС2 там jmp на ресет

и кстати, врядли ТАКОЕ результат дизасма


; инициализация контроллера прерываний
;;;;;;;;;;;
; Контроллер прерываний запрограммирован в
; режиме вложенных прерываний.Вектор прерываний
; находиться начиная с адреса 02Е0Н с интервалом 4.
; Наложена маска запрета
; прерываний по всем уровням кроме 3-го.
;;;;;;;;;;;
MVI L,SICP0
MVI M,ICW1 + SHORT + (LOW INTTBL)
INR L
MVI M,HIGH INTTBL
MVI M,NOT INT3
DCR L
MVI M,SELRID + SELEN + SELIRR
....
; Дешифратор функциональных клавишей

MOV A,C
RRC
JC BOOT ; F1 - Загрузка ОС
RRC
JC LDROM ; F2 - Загрузка ПЗУ
RRC
JC TESTLS ; F3 - Тест ЛС
RRC
JC BASIC ; F4 - Резерв
JMP DOSBOOT ; F5 - Резерв


---------- Post added at 15:38 ---------- Previous post was at 14:21 ----------

кстати, про сеть и передачу графики
похож они хотели сделать, но не смогли
во всех STS (1.0,1.1,2.0)
есть такие строчки


RAM:28BB m0ACZU: db '\r\n' ; DATA XREF: RAM:157Fo,RAM:15CBo ...
RAM:28BB db '0 - АЦЗУ\r\n$'
RAM:28C8 m1GZU: db '1 - ГРАФ. ЗУ\r\n$'
RAM:28D7 m2BASIC: db '2 - БЕЙСИК\r\n$' ; DATA XREF: RAM:1585o, sub_27EB+6o
RAM:28E4 m4DISK: db '4 - ДИСК\r\n$' ; DATA XREF: RAM:15D1o
RAM:28EF m5RAM: db '3 - ОЗУ\r\n$' ; DATA XREF: RAM:158Bo

но пункт '1 - ГРАФ. ЗУ' не используется ;)

marinovsoft
22.05.2014, 17:11
OFF
ESL, пробовал открыть несколько ида-баз из вашего архива, ничего не вышло. К слову сказать idb от forth32 тоже не поддянулся :( (3.7, 4.15, 5.5, 6.1)


ida 6.1
я запускаю IDAQ
http://rutracker.org/forum/viewtopic.php?t=3625386
Канонiчная ида гуглится так all_rdw_releases.rar, а эта кажется китайская со старым hexrays

Serebriakov
22.05.2014, 21:17
И все же на главный вопрос в книжке ответа нет. Как физически устроена сеть - двухпроводная или трехпроводная? Неужели это так и останется страшной тайной...
Из того, что довелось увидеть мне - была либо коаксиалка, либо просто два провода.
Где-то валяется длинный моток того самого провода от реального класса (белый и синий проводки, по толщине напоминают витую пару) и может даже где есть коннекторы. Так же есть Линтеховская сетевая карта для PC (все хочу как проект выходного дня считать с нее прошивки и перерисовать схему). Еще есть пару корветов с этой самой платой модернизации от ЛинТеха. Ну и много документации ко всему этому (обязательно сканирую позже). Вообще, у ЛинТеха была интересная разработка. Когда-то у меня был когнитивный диссонанс от созерцания Win 3.11 на Корвете.
Где-то выше писалось про сопротивления - они действительно были включены в сеть, но как именно не помню. Когда дойдут руки до корветов, могу поискать.

DDp
22.05.2014, 21:30
Ну, фоткать там особо нечего, разъем как разъем.
Если подключать ся к этому разъему стандартным DB-9 соединителем, то распиновка будет такая:

1
2 OUTLN, выход данных
3 GND
4 INNL, вход данных
5 +5v
6-9 - входы установки адреса РМУ, А0-А3

Но тут надо учесть еще вот что. Корвет у меня неполноценный, точнее говоря, мне досталась только слегка покуроченная плата 8010, без клавиатуры, корпуса итд. Плату я отремонтировал, допаял недостающие до 8020 элементы, а вот разъемы поставил стандартные угловые DB-9, коих на материнских платах как грязи. Повезло, что они полностью подошли по посадке. Однако на картинках я вижу, что в оригинале разъемы крепились на заднюю металлическую пластину, а к плате подключались проводами. В каком порядке они подключались - я не знаю. Может быть и зеркально, хотя и вряд ли. Поэтому на всякий случай лучше вызвонить, к какой из ножек идет +5V. И сразу станет понятна цоколевка разъема.

РП15-9Г в ижевском Корвете ("Контур") (http://yadi.sk/d/2PJBdWWOR2SnF) и сравнение с D-Sub9M (http://yadi.sk/d/NhEv4vKRR2Sor) (да, нумерация контактов зеркальная).
"+5" нет ни на 1, ни 5 конт. (нет дорожек вообще)
OUTNL на 4 конт. для РП15-9Г или на 2 конт. для D-Sub9M
INNL на 2 конт. для РП15-9Г или на 4 конт. для D-Sub9M

forth32
23.05.2014, 07:48
[QUOTE=forth32;712176]
удобно, а я как-то с такими вещами не знаком ;(


Да ладно не знаком. Это же все на самом корвете делается. Я вчера задумался - где ты берешь все эти библиотеки и описания к ним? И вспомнил, что еще в прошлом году из соседней темы откачал несколько десятков мегабайт KDI-образов. Сделал поиск - и тут же нашел образ ESL_15.KDI. Там и полная система разработки на С, и эта самая сетевая библиотека, и полные доки и по ним, и по структуре файлов, итд. Соответственно, грузимся с этой дискеты, в текстовом редакторе набиваем программу-пустышку test.c, а дальше


submit c test
flink -m -o test.com chead.r test.r libc.a mlib.a net.a >test.map

На выходе получаем 2 файла. test.com грузим в IDA с адреса 100, как обычно. А test.map будет сдержать имена и абслютные адреса всех подпрограмм. Сразу будет видно, где лежит net и откуда начинать разбор.


ага, еще есть некая ОС "СФЕРА" (возможно как-то соотносится с корнетом
и естьт еще CP/N-90
похоже она попроще будет чем корнет.


Похоже, и это все можно найти в той же помойке софта. Я тут еще нашел файл ndos.bin в соседней теме про загрузку с ленты. Его пытались с ленты загрузить :) Похоже, это клиентская часть CP/N. Оно спокойно прогрузилось по сети с адреса 9000, вывело командный промпт A>, но затем зависло намертво. Видимо, ждет ответа от сервера. Если сэмулировать сервер, то получим полноценную сетевую ОС. А сервер там, как я понял, занимается только поддержкой сетевых дисков.


мне кажется что это просто некий промежуточный код некий
т.к. смущает нам наличие макросов ...
это имхо говорит что его как минимум компилили с этими флагами ...


Да, теперь и я вижу, что это похоже на оригинальные исходники. Я-то сморел файл ROMB1201, с бейсиком. Меня насторожили метки типа L3852, совпадающие с абсолютными адресами - обычно их делает дизассемблер. Ну и почти полное отсутствие комментариев. Видимо, как тут и предполагали, бейсик был в бинарном виде содран с микрософт-бейсика и частично дизассемблирован. А остальное писали с нуля. Для сети в RMUPZU все метки осмысленны, и есть даже кое-какие комментарии.



ida 6.1
я запускаю IDAQ ;)

А... Есть он у меня, с этой самой раздачи. IDAQ - это виндовый графический IDA. Я этот вариант не люблю, я работаю только в текстовом варианте IDA.
Я использую IDA 5.5, поскольку он единственный есть под linux. В принципе, в дос-эмуляторах запускается досовый IDA. Графиический idaq версии 6 я специально чтобы порыться в твоих базах попробвал запустить по wine-эмулятором. Он запустился, однако выдет собщение "Database corrupt" на любую твою базу. Даже и не знаю, что тут виновато. Может быть, кривизна wine. Ставить полноценную винду в виртуалку мне пока как-то неохота, мне в ней с непривычки придется день разбираться.

кстати, про сеть и передачу графики
похож они хотели сделать, но не смогли


Да, похоже. А тип данных 1 остался как рудиментарный памятник неудаче. На то есть, как я вижу, две причины. Во-первых, надо передавать по сети довольно большой объем данных - 48К для полного экрана. Это довольно долго. Во-вторых, эти данные еще надо куда-то временно положить. Сразу в ГЗУ писать нельзя - требуется переключить карту памяти и закрыть прерывания, при этом прием данных по сети станет невозможен. Так что забили и правильно сделали.

---------- Post added at 07:48 ---------- Previous post was at 07:37 ----------


Из того, что довелось увидеть мне - была либо коаксиалка, либо просто два провода.

Ну коаксиалка тут явно излише :) Там 20 КГц - это звуковой диапазон. А два проводка - я так и понял, в конце концов, что передатчик и приемник были замкнуты друг на друга и оба рабтали на единую среду передачи данных.

А вот как подключались отводы к РМУ к этому кабелю? Просто впаивались-врезались, или была какая-то согласующая схема? Меня настраживает то, что на разъем LAN выведено питание +5v - это предполагает наличие в соединителе активных компонентов.


Ну и много документации ко всему этому (обязательно сканирую позже).
А вот это ОБЯЗАТЕЛЬНО!!! Вот так по крупицам, может быть, и соберем полный пакет дкументации.


Где-то выше писалось про сопротивления - они действительно были включены в сеть, но как именно не помню. Когда дойдут руки до корветов, могу поискать.

Я думаю, оно там всего одно было, в начале или в конце линии. Служит нагрузкой выходных транзисторов с открытым эмиттером.

esl
23.05.2014, 14:28
А... Есть он у меня, с этой самой раздачи. IDAQ - это виндовый графический IDA. Я этот вариант не люблю, я работаю только в текстовом варианте IDA.
Я использую IDA 5.5, поскольку он единственный есть под linux. В принципе, в дос-эмуляторах запускается досовый IDA. Графиический idaq версии 6 я специально чтобы порыться в твоих базах попробвал запустить по wine-эмулятором. Он запустился, однако выдет собщение "Database corrupt" на любую твою базу. Даже и не знаю, что тут виновато. Может быть, кривизна wine. Ставить полноценную винду в виртуалку мне пока как-то неохота, мне в ней с непривычки придется день разбираться.

могу выложить свою версию, времеено (http://yadi.sk/d/hQ29vdBSR5wzm) когда спросит -> мой ник, отпишитесь как уже.
сам под линхом, пускаю ее в virtualbox
пробовал в wine, запускается

выложи плиз linux версию ??
(времеенно, потом ссылку убить)

---------- Post added at 13:11 ---------- Previous post was at 12:08 ----------



Я думаю, оно там всего одно было, в начале или в конце линии. Служит нагрузкой выходных транзисторов с открытым эмиттером.

опять же как помню, в конце линии стояла круглая черная коробка куда и уходил хвост сети.

---------- Post added at 13:28 ---------- Previous post was at 13:11 ----------


РП15-9Г в ижевском Корвете ("Контур") (http://yadi.sk/d/2PJBdWWOR2SnF) и сравнение с D-Sub9M (http://yadi.sk/d/NhEv4vKRR2Sor) (да, нумерация контактов зеркальная).
"+5" нет ни на 1, ни 5 конт. (нет дорожек вообще)
OUTNL на 4 конт. для РП15-9Г или на 2 конт. для D-Sub9M
INNL на 2 конт. для РП15-9Г или на 4 конт. для D-Sub9M

ой, я совсем не электронщик
адрес задается замыканием 6-9 на GND ??

и поидее неподключенные разъем = RMU 0 ?

хочу добавить в основную ветку информациюю ;)

esl
23.05.2014, 17:20
Так же есть Линтеховская сетевая карта для PC (все хочу как проект выходного дня считать с нее прошивки и перерисовать схему). Еще есть пару корветов с этой самой платой модернизации от ЛинТеха. Ну и много документации ко всему этому (обязательно сканирую позже). Вообще, у ЛинТеха была интересная разработка. Когда-то у меня был когнитивный диссонанс от созерцания Win 3.11 на Корвете.


Вроде как было 3 версии Lintex

NET-CP/M Version A
NET-CP/M Version B
NET-CP/M Version B-2.0


сервер - обычный РМУ

NET-CP/M Version A - есть, работает по станартной сети, в доке написано что скорость 1К/c (в спец режиме копирования)
она есть ;)


Операционная система NET-CP/M Version A-1.1
Монитор управляющей машины (ACM)
(c) ЛИнТех/LInTech 1991; Кононов С.В.
Адрес: 119501 Москва, а/я 942
Телефон: (095) 273-50-14
Телефакс: (095) 292-65-11


сервер - IBM/PC

NET-CP/M Version B - вроде как втыкается в разъем расширения, сеть своя, скорость значительно выше

NET-CP/M Version B-2.0
плата включается в "системный разъем" на плате корвета (рядом с ПЗУ и клавиатурой, там ВСЕ сигналы с проца есть)
читал что там скорость ДО 384к

кое какой софт клиентский от нее есть, там что-то страшное ;)
запуск винды на корвете (как на терминале)

а вообще в наличии есть сетевые ос

Корнет
CP/N-90
Сфера
NET-CPM A

forth32
23.05.2014, 20:11
NET-CP/M Version A - есть, работает по станартной сети, в доке написано что скорость 1К/c (в спец режиме копирования)


сервер - IBM/PC
[/QUOTE]

Значит, версия A работает так, как мы сейчас и делаем - подключается вся гирлянда корветов РМУ в компорт PC и все работает?

А где ее брать-то? Особенно серверную чатсть (клиентскую, я так думаю, сервер рассылает по сети сам при запуске).

esl
23.05.2014, 21:27
NET-CP/M Version A - есть, работает по станартной сети, в доке написано что скорость 1К/c (в спец режиме копирования)

Значит, версия A работает так, как мы сейчас и делаем - подключается вся гирлянда корветов РМУ в компорт PC и все работает?

А где ее брать-то? Особенно серверную чатсть (клиентскую, я так думаю, сервер рассылает по сети сам при запуске).

всё в том архиве ;)

все перечисленные выше работают по обычной сети
самая простая из них явно cp/n-90

попробовал собрать все, но именно собирал из разных дисков
в эмуляторах вроде запускаются, но 100% гарантии работоспособности нет

порядок появления
с этими в свое время играл на живом классе

cp/n-90
kornet

а эти уже вообще не щупал
sfera
net cp/m a

p.s. Корнету для запуска нужно оба диска в дисководе, иначе он не стартует
и еще выглядит как на втором диске и сидит ос для РМУ (хотя не проверял)

forth32
24.05.2014, 11:45
Попробовал я версию IDA, выложенную ESL, под wine. Там базы нормально открываются. Правда, сама IDA практически не работает - видимо требует наличия в системе виндового питона, которого у меня, естественно, нет. В результате, например, переход ентером по адресу не получается. А консольная idaw под wineconsole вообще не запускается из-за отсутствия python27.dll. Ну да ладно.

Линуксовая версия ida5 лежит здесь - http://rutracker.org/forum/viewtopic.php?t=524500

Правда, в ней не будут открываться базы от 6 версии. И есть некоторые проблемы с поддержкой русского языка в unicode.

esl
24.05.2014, 14:26
Попробовал я версию IDA, выложенную ESL, под wine. Там базы нормально открываются. Правда, сама IDA практически не работает - видимо требует наличия в системе виндового питона, которого у меня, естественно, нет. В результате, например, переход ентером по адресу не получается. А консольная idaw под wineconsole вообще не запускается из-за отсутствия python27.dll. Ну да ладно.

Линуксовая версия ida5 лежит здесь - http://rutracker.org/forum/viewtopic.php?t=524500

Правда, в ней не будут открываться базы от 6 версии. И есть некоторые проблемы с поддержкой русского языка в unicode.
python точно не виноват, это плагин, он не влияет, можно просто удалить из plugins/python*.*

у меня wine 1.7.19,
запустились обе,и консольная и нет.

---------- Post added at 13:15 ---------- Previous post was at 13:13 ----------

как понимаю единственный спомоб даунгрейда базы это экспортировать формат в idc и потом реимпортировать
сегментов там нет, исходные бин файлы рядом ...

---------- Post added at 13:26 ---------- Previous post was at 13:15 ----------

чегойто сразу не нашел как побороть
./idal: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
:(

forth32
26.05.2014, 07:55
Итак, я закончил дизассемблирование и разбор библиотеки NETLIB.A. Хоть я и понимаю, что чудес на свете не бывает, но, как всегда, надеялся на маленькое чудо. Увы, получилось как всегда.

Код библиотеки написан весьма коряво, что, конечно, снижает производительность но облегчает разбор в IDA :) Кроме того, библиотека жестко привязана к функциям консольного драйвера МикроДос, и вызыает их прямым переходом. В результате, программы, использующие эту библиотеку, не будут работать в CP/M. Сама библиотека поддерживает кучу функций, описание которых лежит в файле C.TXT на том же диске, что и библиотека. Описание очень интересное, что и сподвигло меня на ее раскопку.

Насчет ответчика сети. В описании говорится, что это произвольно выбираемый РМУ, отвечающий серверу на команды передачи данных в режиме широковещательного адреса. Одна из функций библиотеки (15 - установка логической связи), должна возвращать адрес этого самого ответчика, и мне было интересно - где она его берет? Оказалось, что ответчик - это просто активный РМУ в сети с самым старшим адресом. И все. Не знаю как в мечтах автора библиотеки, но в реальной жизни РМУ отказывается отвечать на широковещательный адрес, даже если ему присвоить номер 15. Я еще раз прошел по коду ОПТС 2 - там однозначный запрет на передачу в сеть после приема широковещательного адреса и изменить это никак нельзя. Могу предположить, что эта возможность была в ОПТС 1. Что интересно - подпрограммы библиотеки действительно ждут ответа от сети при передаче, независимо от типа адресации. То есть ответчик в сети когда-то реально существовал.

Меня заинтересовала функция 9 библиотеки - из бейсика РМУ на экран РМП. Судя по описанию, она должна выгрузить из РМУ программу в токенах и показать ее на экран в текстовом виде, то есть распаковать. Я уже надеялся посмотреть фирменный распаковщик программ. Все оказалось проще. В РМУ посылается пакет S - запрос на получение данных типа 2 (бейсик-программа), а в поле +04 пакета S (которое копируется в ответный пакет R на то же место) указывается тип данных 0 - экран. И все. То есть сам РМУ должен распаковать программу и передать ее серверу уже в распакованном виде. Понятно, что этого не происходит - в коде ОПТС 2 просто нет такой возможности. Видимо, это тоже было заложено в ОПТС 1.

В библиотеке реализован автозапуск программ на бейсике, посылаемых по сети. Делается это так. После отсылки бейсик-программы, на РМУ пересылается коротенький самозапускаемый код:


basic_autostart_sub: ; DATA XREF: init_basic_autorun+Fo
ld hl, (word_63BF)
jp loc_362C

В ОПТС 2.0 это работать не будет - там по этим адресам нет ничего интересного. Общая идея этого кода - в HL загружается адрес начала программы, и управление передается интерпретатору. Похожий код имеется в конце обработчика команды LOAD - если в этой команде указан параметр R, то программа также автозапускается. И адреса там правильные. Но в бейсике ОПТС2 это работает не особо стабильно - иногда запускает программу, иногда нет. С причиной я разбираться не стал - придумал другой способ автозапуска.

Вообщем, библиотека оказалась не особо совместимой с сетью ОПТС2, и не особо полезной. Но все же, разобрав библиотеку, я почерпнул важную и полезную информацию.
Во-первых, прояснились поля +4 и +5 пакета S. Эти поля тупо копируются в ответный пакет R при передаче данных от РМУ к серверу, и никак не используются сетевым драйвером ОПТС. Оказалось, что поля эти используются самой сетевой библиотекой.
Поле +4 - это тип и назначение данных, принимаемых сервером от РМУ. Возможны такие значения:


0 - экран консоли РМУ.
2 - образ памяти с заранее определенной длиной
3 - образ памяти, ограниченный тремя нулями для данных или тремя байтами 1A (EOF) для бейсик-программы
4 - дисковый файл.

Таким образом, прояснилось назначение типа данных 4 (в ОПТС он не используется, начальный и конечный адрес установлены в 0). Это просто данные, подлежащие записи на диск.
Поле +5 пакета S - это адрес в памяти сервера, по которому загружаются принятые от РМУ данные. Используется в функции 14 (из ОЗУ РМУ в ОЗУ РМП) и ей подобными.

Также прояснилось, насчет мифических пакетов типа F и B, описания которых встречаются в документации по сети. На самом деле, такие пакеты по сети не передаются. Они существуют только внутри подпрограмм библиотеки, и используются для взаимодействия между отдельными процедурами, обозначая фазы сетевого протокола:

F - файловая фаза. Происходит открытие файла и подготовка к чтению-записи.
B - конец сетевого обмена при передаче данных
С - конец сетевого обмена при приеме данных
G - ошибка сетевого обмена

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

Практической пользы от вышеописанного практически никакой - для реальной работы с сетью это не нужно. Разве только автостарт бейсика имеет реальную пользу. Но для раскопки сетевых программ все это может очень даже пригодиться. И еще - библиотека реализует протокол, немного несовместимый с ОПТС2. Видимо, под ОПТС2 была написана другая библиотека, но где ж ее искать...

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

esl
26.05.2014, 09:02
есть sts 2.0 из комплекта кувт

forth32
26.05.2014, 10:38
есть sts 2.0 из комплекта кувт

Это версия STS для ОПТС2? Я эту STS в работе никогда не видел, и попробовать не на чем - требуется сеть из 2 корветов. Догадываюсь, что это программа приема-передачи данных по сети для классов КУВТ.

Ага, нашел. Диски DE_2_04 и DE_8_00. Будет время - посмотрю. Только боюсь что и там ничего интересного нет...

esl
26.05.2014, 11:05
U
Это версия STS для ОПТС2? Я эту STS в работе никогда не видел, и попробовать не на чем - требуется сеть из 2 корветов. Догадываюсь, что это программа приема-передачи данных по сети для классов КУВТ.

Ага, нашел. Диски DE_2_04 и DE_8_00. Будет время - посмотрю. Только боюсь что и там ничего интересного нет...

В комплекте с кувт шла только sts
К оптс 1 шли точно оптс 1.x
По логике sts 2 от оптс 2
Они все есть в моих ida
Там кроме баз и есть и исходники из чего желал _ida

Кроме того там ещё есть сетевые программы
Сделанные по виду с похожей либой
Например postman

forth32
26.05.2014, 12:27
Доработал программу сетевого обмена. Выложил в соседнюю тему - http://zx.pk.ru/showpost.php?p=712788&postcount=9

Описание изменений там же.

esl
26.05.2014, 12:59
Доработал программу сетевого обмена. Выложил в соседнюю тему - http://zx.pk.ru/showpost.php?p=712788&postcount=9

Описание изменений там же.

просто супер !
теперь точно надо свой Корвет оживлять ;)

forth32
27.05.2014, 12:35
Итак, можно считать, что сетевой протокол ОПТС2 мы раскопали практически полностью. Вроде как непоянтных и неопределенных моментов больше не осталось.
Сдедующим этапом надо бы ковырнуть сетевые ОС, ну и конечной целью сэмулировать их серверную часть на PC. Но тут есть проблема. Для исследования сетевого взаимодействия нужно иметь как минимум 2 корвета - сервер и клиент. У меня же есть только один, и то не совсем полноценный - без родной клавиатуры :) Второй мне, видимо, уже не добыть никогда - их теперь даже на помойке не найдешь.
Но я вижу еще один вариант. Существует несколько вариантов программных эмуляторов корвета. Если к одному из них прикрутить поддержку сетевого адаптера, то можно собрать сеть из реального корвета и эмулятора, и развлекаться с ней сколько угодно.

Я тут порылся в здешних корветовских темах и нашел ссылку на исходные тексты одного из эмуляторов - korvet-v092.src (изнутри они обзываются ETALON Korvet Emulator). Программа написана простым понятным языком, для сборки используется обыкновеннейший GCC, а для общения с внешним миром программа использует кроссплатформенную библиотеку Allegro. Сейчас попробую собрать ее в своей системе. Если соберется - можно сделать удобный инструмент для исследования сетевых программ.

esl
27.05.2014, 14:07
Существует несколько вариантов программных эмуляторов корвета. Если к одному из них прикрутить поддержку сетевого адаптера, то можно собрать сеть из реального корвета и эмулятора, и развлекаться с ней сколько угодно.

Я тут порылся в здешних корветовских темах и нашел ссылку на исходные тексты одного из эмуляторов - korvet-v092.src (изнутри они обзываются ETALON Korvet Emulator). Программа написана простым понятным языком, для сборки используется обыкновеннейший GCC, а для общения с внешним миром программа использует кроссплатформенную библиотеку Allegro. Сейчас попробую собрать ее в своей системе. Если соберется - можно сделать удобный инструмент для исследования сетевых программ.

ой, это как раз мой эмулятор ;)
я даже репозиторий сделал, но только перевел в unicode и на это всё
https://bitbucket.org/esl/korvet-pk8020-emulator

Он то соберется, только там в аллегре что-то поменялось, надо допиливать
как-то пробовал собирать, что-то было с клавой

я то не сильно программист, если ты его собереш - это будет просто супер
есть даже мысли куда пилить, но сеть - было бы супер!

кстати в B2M есть попытка сделать сеть корвета, но на очень успешно, не хватало информации, теперь может и можно уговорить b2m допилить.

BYTEMAN
27.05.2014, 14:32
а разве не esl автор эмулятора? :)

forth32
27.05.2014, 14:39
ой, это как раз мой эмулятор ;)
я даже репозиторий сделал, но только перевел в unicode и на это всё
https://bitbucket.org/esl/korvet-pk8020-emulator


А, так ты же и есть Сергей Ерохин. Ну тогда просто шикарно. Спасибо тебе, у тебя хороший прозрачный стиль написания программ. После всего того говна, в котором приходится по работе ковыряться, это просто луч света.


Он то соберется, только там в аллегре что-то поменялось, надо допиливать
как-то пробовал собирать, что-то было с клавой

Он вполне себе собрался полчаса назад с Allegro 4.4 из репозитория дебиана. Правда, о твоем репозитории я не знал, собирал из выложенных исходников. Вообщем, после некоторых правок и переделки Makefile все собралось. Работает. Остались такие проблемы:

- не работает полноэкранный режим. Точнее говоря, при входе в этот режим мой монитор отказывается показывать картинку. Видимо, аллегровский драйвер выставляет рефреш больше 60 Гц в режиме 640*480. Вставка вызова request_refresh_rate(60) сходу не помогла, и, поскольку с аллегро я раньше дело не имел, проблема пока повисла. Попробую попозже с другим монитором. В окошке все работает, только вот на экране 1920*1080 это окошко уж больно мелко смотрится :)

- не работают кнопки shift, ctrl и вообще весь нижний ряд корветовской клавиатуры. То есть кавычку не введешь. В твою реализацию моудля клавиатуры я пока не вникал. Но придется - без кавычки и старших F-кнопок многие вещи не сделаешь.

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



кстати в B2M есть попытка сделать сеть корвета, но на очень успешно, не хватало информации, теперь может и можно уговорить b2m допилить.

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

esl
27.05.2014, 15:14
А, так ты же и есть Сергей Ерохин. Ну тогда просто шикарно. Спасибо тебе, у тебя хороший прозрачный стиль написания программ. После всего того говна, в котором приходится по работе ковыряться, это просто луч света.

спасибо на добром слове
там хватает всякого, но я старался ;)



- не работает полноэкранный режим.

Попробую попозже с другим монитором. В окошке все работает, только вот на экране 1920*1080 это окошко уж больно мелко смотрится :)

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



- не работают кнопки shift, ctrl и вообще весь нижний ряд корветовской клавиатуры. То есть кавычку не введешь. В твою реализацию моудля клавиатуры я пока не вникал. Но придется - без кавычки и старших F-кнопок многие вещи не сделаешь.

ага, я про это и писал, но там думаю не сильная проблемма должна быть




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


это было бы просто супер!

еще бы тогда допилить эмуляцию "виртуальной" сети
для N+1 эмулятора



Так что давай лучше твой эмулятор доведем до работы с сетью.

я только за, было бы неплохо завести общей репозиторий, могу дать права на тот если устроит.

forth32
27.05.2014, 18:08
на имхо полноэкранные не нужен, это атавизм, без него точно жить можно.
а с мелким экраном, имхо решаемо маштабированием ;)
хотя я под виндой так и использую.

Не, у меня слишком мелкое окно на экране получается. Тяжело всматриваться. А аллегро поддерживает масштабирование? Надо бы мне доку по нему почитать с allegro.cc, вот вечерком пивка возьму и изучу. Заодно насчет клавиатуры подумаю.


еще бы тогда допилить эмуляцию "виртуальной" сети
для N+1 эмулятора

Это все легко решается механизмом псевдотерминалов, ну или вообще любой реализацией виртуального компорта.



я только за, было бы неплохо завести общей репозиторий, могу дать права на тот если устроит.

Я бы не хотел портить твой оригинальный репозиторий. Все-таки мой стиль программирования отличается от твоего, тебя это не напрягает? Ну и, потом, потеряется полная совместимость с виндой. Мне ее проверить не на чем, да и не особо хочется.
Может, стоит форкнуть твой репозиторий, а ты потом бекпортируешь оттуда к себе мои модификации? Просто я уже изменил кое-какие твои файлы, и даже уже не вспомню что именно и где менял. Но как минимум Makefile под линукс и винду точно нужно делать разные.

esl
27.05.2014, 18:23
Я бы не хотел портить твой оригинальный репозиторий. Все-таки мой стиль программирования отличается от твоего, тебя это не напрягает? Ну и, потом, потеряется полная совместимость с виндой. Мне ее проверить не на чем, да и не особо хочется.
Может, стоит форкнуть твой репозиторий, а ты потом бекпортируешь оттуда к себе мои модификации? Просто я уже изменил кое-какие твои файлы, и даже уже не вспомню что именно и где менял. Но как минимум Makefile под линукс и винду точно нужно делать разные.

прекрасный вариант ;)
более чем устраивает
я сейчас тоже под линуксом, так что очень удачно.

forth32
27.05.2014, 18:55
Вообщем, я закончил первый, черновой вариант базовой поддержки сети. Базовая - потому что эмуляция сетевого адаптера далеко не полная. То есть настройка режима работы ВВ51 через командный порт не реализована - режим жестко задан как 19200-8-О-1. С другой стороны, а надо ли точно эмулировать этот ВВ51? Вот для ИРПС порта - другое дело.
Собственно, эмулируются пока только чтение из сети, запись в сеть, проверка готовности приемника (передатчик готов всегда) и прерывание от сети.

В файл конфигурации я добавил 2 параметра - LANADDR, то есть адрес РМУ в сети, и LANPORT, указывающий имя последовательного устройства, например /dev/ttyS0. Программа открывает этот порт, и взаимодействует через него с подключенным к нему реальным корветом. Как вариант, предусмотрена работа с виртуальными компортами (псевдотерминалами) - если указать LANPORT=/dev/ptmx, то будет создан подчиненный вторичный компорт, имя которого показывается на консоль при старте, например -


forth32@cad ~/korvet/kemu $ ./kdbg

Последовательный порт /dev/ptmx открыт, fd=5
Подчиненный псевдотерминал - /dev/pts/3
Driver: ALSA

Этот вторичный компорт можно открыть, например, моей программой KL. Ну или запустить еще одну копию эмулятора и указать его в LANPORT.

Итак, программа STS в эмуляторе работает полностью. Я ее, кстати, впервые увидел в работе. Уродство редкостное. Спрашивает подтверждение на каждый чих. За такое в комплекте КУВТ надо оба яйца с корнем отрывать. Поскольку STS привязана к NETLIB, в CP/M она не работает. А с микродосом возникла проблема - в большинстве микродосов в эмуляторе не работает клавиатура. На реальном корвете работает, а тут - нет. И не поймешь где виснет - отладчик в эмуляторе требует полноэкранный режим и мне, соответственно, недоступен. Единственный рабочий микродос оказался на диске de_9_01.kdi.
Программа нашла мой реальный корвет, определила его адрес, позволила передать-принять данные. Кстати, на РМУ при этом вывдится текст "Работа прервана загрузкой программы" - хорошая идея, надо ее ко мне в программу вставить.
Попробовал я CP/N. Он передал клиентскую часть на корвет, она там запустилась и выдала A>, но по первой же команде повисла намертво. КОРНЕТ виснет при загрузке с дискеты, СФЕРА требует сетевой диск B, подробнее я не разбирался.

Теперь о проблемах. Во-первых, в обратную сторону сеть работать не хочет. То есть когда реальный корвет - сервер, а эмулятор - РМУ. Похоже, теряются прерывания. То есть PIC_IntRequest(3) не вызывает прерывания. Тут придется посидеть в GDB, поотлавливать этот момент. Ну и с псевдотерминалом тоже есть проблема:


forth32@cad ~/korvet/lan $ ./kl -d /dev/pts/3 -vbp -s0 -l100

@ Послан адрес
@ Послана команда запроса данных типа 3
+ Прием данных:
- Принят пакет типа N - прерываем прием данных
- Данные не получены

То есть эмулятор принимает адрес, и даже пытается отреагировать на команду, но отвечает N. Тут я еще заметил, что через псевдотерминал обмен идет ОЧЕНЬ быстро - понятно, что тут скорость не ограниченна 19200, и очень похоже что эмулятор просто не успевает за потоком данных. Надо разбираться с буферизацией и управлением потоком.

Ладно, для первого дня и так неплохо. Поскольку насчет репозиториев мы еще не договорились, выкладываю свои труды на яндексдиск - http://yadi.sk/d/9kivUREpRRam3
Все равно это очень временный файл.

Но все еще впереди. Разберемся с прерываниями, согласованием потоков данных, клавиатурой - будет отличная игрушка.

esl
27.05.2014, 21:06
Итак, программа STS в эмуляторе работает полностью. Я ее, кстати, впервые увидел в работе. Уродство редкостное. Спрашивает подтверждение на каждый чих. За такое в комплекте КУВТ надо оба яйца с корнем отрывать. Поскольку STS привязана к NETLIB, в CP/M она не работает. А с микродосом возникла проблема - в большинстве микродосов в эмуляторе не работает клавиатура. На реальном корвете работает, а тут - нет. И не поймешь где виснет - отладчик в эмуляторе требует полноэкранный режим и мне, соответственно, недоступен. Единственный рабочий микродос оказался на диске de_9_01.kdi.


про отрывать - очень точные слова ;)
по этому народ и стал писать "заменители"

по поводу микродоса
у него тяжкая судьба была ;)

есть 3 типа микродосов
для ОПТС 1.x
для ОПТС 2.x
для ОПТС 1.x и ОПТС 1.x

первый и второй можно скачать http://pk8020.narod.ru/s2-download-soft.html
разница там следующая
в микродос используется опрос клавиатуры из ПЗУ (в CP/M он свой)
причем в ОПТС 1 он работает по вызову функции
а в ОПТС 2 по прерываниям
соответсвенно и "биос" микродоса должен это учитывать
и соответственно не работает неправильная версия ;)
и еще мелочь, в ОПТС1 в конфигурации памяти нет АЦЗУ
а в ОПТС2 оно есть (как и в CP/M)
в этом смысле ОПТС2 ближе к CP/M, по крайней мере кое что из CP/M софта которые лезет прямо в экран - работает

кстати в микродос этих версий нет рамдиска

и есть 1 (одина) версия, которая проверяет на какой ОПТС она запустилась и патчит себя
кроме того в ней есть драйвер рамдиска
/td0/MIKRDOS3.KDI

кстати, в эмуляторе то нужнуй ром в конфиге выбрать можно ;)
ты как раз и нашел Микродос для ОПТС2 ;)


под cp/m есть Postman
\DmitriyKrautsov\Unsorted\unsort06.kdi
\DmitriyKrautsov\Unsorted\unsort18.kdi






c ОПТС 1.x был свой микродос

---------- Post added at 20:06 ---------- Previous post was at 19:04 ----------

клавиатура вроде починилась

в keyboard.c

заменить

for (i=0;i<MAXKEY;i++) {KeyAlias[i]=key[i];}
на

for (i=0;i<KEY_MAX;i++) {KeyAlias[i]=key[i];}

forth32
27.05.2014, 21:10
в микродос используется опрос клавиатуры из ПЗУ (в CP/M он свой)

То есть при обращении к клавиатуре происходит переключение карты памяти с включением ОПТС, а потом обратно? Ну, сэкономили пару-другую сотен байтов биоса, однако. Только вот непонятно почему некоторые микродосы не работают в эмуляторе но работают на реальном корвете с ОПТС2 на борту. Хотя хрен с ними, мне и одного рабочего микродоса более чем достаточно.



и еще мелочь, в ОПТС1 в конфигурации памяти нет АЦЗУ
а в ОПТС2 оно есть (как и в CP/M)

То есть для вывода каждого байта на экран опять-таки переключают карту? имхо вот это уже идиотизм. Ради экономии килобайта памяти такие накладные расходы...

Я смотрю, ты плотно копал микродос. Скажи вот тогда, он устроен так же, как и CP/M, то есть BIOS+BDOS+CCP ? Мне просто непонятно, почему некоторые программы лезут к терминальному драйверу напрямую по адресам Exxx вместо обращений через точку входа BDOS.



и есть 1 (одина) версия, которая проверяет на какой ОПТС она запустилась и патчит себя
кроме того в ней есть драйвер рамдиска


Похоже, что я на эту версию и нарвался. Правда, попробовать рамдиск не получилось - из-за отсутствия шифта не могу ввести знак =. А на реальном моем корвете ГЗУ 48К, там не будет рамдиска.



под cp/m есть Postman


Попробовал его. БЛИН! Это же небо и земля! Нормальный оконный интерфейс, и работает как часы. Все передается и принимается.

Под такое дело попробовал соединить 2 эмулятора через виртуальный терминал. Как ни странно, все более-менее заработало. И передача в эмулятор, и прием другим эмулятором. То есть и прерывания не теряются. Правда, возникают иногда ошибки передачи, но с этим разберемся как-нибудь. А вот CP/N отказалась работать полностью. Если на реальный корвет хотя бы ОС заливается, то тут принимающий эмулятор просто виснет. Ну да ладно, пока и так неплохо.

Пора заняться изучением аллегро.

esl
27.05.2014, 21:16
клавиши в отладчике сегодня постараюсь глянуть ;)

начну переносить в bitbucket

forth32
27.05.2014, 21:27
клавиатура вроде починилась

в keyboard.c

заменить

Да, точно. Заработало. Идею твою понял, как раз сейчас читал о клавиатурном драйвере аллегры.

extern volatile char key[KEY_MAX];

Ну что ж, одной проблемой меньше. Это ж самое отличное дело - работать с автором программы, а не ковырять чей-то непонятный корявый код типа NETLIB.A :) Теперь с экраном осталось разобраться, и можно будет сосредоточится на сети.

esl
28.05.2014, 01:18
теперь в отладчике снова работают кнопки
убрал некотороые варнинги
теперь ТОЛЬКО оконные режим
уменьшил (по быстрому) окно по размерам корвета
вроде ясно как увеличить, надо попробовать

http://yadi.sk/d/zcVjdY1gRTQhT

forth32
28.05.2014, 09:33
Ну что ж, спасибо тебе, добрый человек, за отладчик. Теперь, имея дизасм ОПТС, вполне можно попробовать разобраться с подвисаниями.
Занчит, у тебя так:
F2 - установка бряка
F4 - выход из подпрограммы
F7 - шаг с заходом в подпрограммы
F8 - шаг без захода в подпрограммы
F9 - продолжение выполнения

То есть все как в старом добром Turbo Debugger. А вот что такое F5, я сходу не понял. Что-то с LUT, но вроде как мне это не особо и надо.

Ну, ладно. Сегодня, если ничего срочного не случится, попробую разобраться с эмуляцией сетевого прерывания. Надеюсь все же заставить работать что-нибудь типа NET CP/M, что, собственно, и является моей главной целью.

---------- Post added at 09:33 ---------- Previous post was at 09:05 ----------

Да, а вот с размером экрана надо все-же что-то делать. Иначе на fullhd мониторе получается вот так:

http://zx.pk.ru/picture.php?albumid=135&pictureid=919

Окно эмулятора слева, а справа - окно твтюнера с подключенным реальным корветом. Такое мелкое окошко эмулятора только в лупу разглядывать...

b2m
28.05.2014, 10:59
B2M - это, как я понял, такой универсальнейший эмулятор различных советских компов. Он чисто виндовый, к сожалению, исходников нет, уговаривать кого-либо заняться программированием мне не особо охота. Предпочитаю писать сам - так удобнее, всегда есть возможность сразу реализовать возникающие идеи.
Полностью с тобой согласен :)

esl
28.05.2014, 12:52
Ну что ж, спасибо тебе, добрый человек, за отладчик. Теперь, имея дизасм ОПТС, вполне можно попробовать разобраться с подвисаниями.
Занчит, у тебя так:
F2 - установка бряка
F4 - выход из подпрограммы
F7 - шаг с заходом в подпрограммы
F8 - шаг без захода в подпрограммы
F9 - продолжение выполнения

То есть все как в старом добром Turbo Debugger. А вот что такое F5, я сходу не понял. Что-то с LUT, но вроде как мне это не особо и надо.


есть даже дока (правда сам искал) ;)
http://pk8020.narod.ru/s2-emulator.html
там даже метки читать можно из файла ;)

про F5 - это если прога перепрограммирует палиттру, можно посмотреть экран в стандартной, иногда полезно.

экран сегодня посмотрю

---------- Post added at 11:52 ---------- Previous post was at 11:51 ----------

опа, а что эт у тебя за "kdi" в терминале ??
поделись ;)!

а то я исходники своей тулзы для работы с KDI посеял, она только в виде бинарника под винду осталась :(

forth32
28.05.2014, 13:34
есть даже дока (правда сам искал) ;)
http://pk8020.narod.ru/s2-emulator.html
там даже метки читать можно из файла ;)

Блииин, оно же может подгрузить MAP-файл от ida! Да ты же просто потрясающий подарок мне сделал. Теперь в отладчике можно по родным именам ходить.


экран сегодня посмотрю

Ага, посмори. И тогда приделай еще кнопку F12 внутри отладчика для выхода из эмулятора. А то единственный способ прибить эмулятор в таком состоянии - ctrl-c из запускающего терминала, что не есть удобно.

А потом нам нужно будет объединить твои и мои правки в один комплект :) Впрочем, я, в основном, затрагиваю только serial.c. Ну и еще в main.c дописал 2 ключа командной строки -n и -l для задания сетевого адреса и сетевого порта, чтобы запускать несколько копий эмулятора без правки конфига.

Сейчас у меня опрос состояния последовательного порта идет каждый проход главного цикла (после каждой машинной команды). Это нерационально, снижает FPS и, похоже, приводит к некоторым глюкам. Хочу попробовать вместо этого ловить асинхронный сигнал SIGIO, генерируемый операционной системой. Может и получится.


опа, а что эт у тебя за "kdi" в терминале ??
поделись ;)!


Ну это очень сырая и совершенно недоделанная прога, руки до нее так и не дошли. Пока она умеет только показывать каталог диска и извлекать оттуда файлы, причем иногда ошибается на полсектора в ту или другую сторону. Просто стандартный пакет cpmtools оказался еще хуже, а ориентироваться в горе KDI-образов без такой проги тяжеловато :)
С реальным дисководом она тоже будет работать, но нужно предварительно явно указать драйверу флопа параметры диска, например так:


setfdprm /dev/fd0 DD sect=5 ssize=1024 cyl=80

Вот эта программа.

esl
29.05.2014, 01:06
Прикрутил 2xscale (теперь основной режим)
в отладчике опять мелкое
если запустить эмуляцию по F9 по F8 можно вернуться в x2

добавил выход из отладчика Ctrl+F12 (на всякий случай)

и теперь в отладчике видно как работает F5 в отладчике

(попробуй F5 -> Ctrl+F5)
F5 включает DBGLUT а Ctrl+F5 переключает режим если он включен.

http://yadi.sk/d/IpYf2GflRYdNp

теперь надо разобраться чего оно так тормозит в отладчике и Turbo
но для начала перенесу изменения в bitbucket и немного порефакторю старое (mainloop etc)

forth32
29.05.2014, 08:07
Ну вот, совсем другое дело! То, что надо. Тепрь экран видно без лупы.

Меня тут из отпуска на несколько дней отозвали, так что я пока с сетью закончить не успеваю. К понедельнику работу сдам - тогда и доделаю. А ты пока допиливай что собирался, делай репозиторий. Кстати, уж если пишешь changelog в файле WORK, то год правильный указывай - сейчас 2014 уже :) Опять машину времени угнали...

esl
29.05.2014, 12:06
пофиксил скорость работы отладчика (в основном новодобавленная фича)
и еще ряд клавиш опять заработало
отладчик стал заметно быстрее

но выяснилось что режим 2x очень заметно тормозит (например запустить и поездить в RALLY, FPS падает до 30)
т.е. надо серьезно вывод переделывать, но пока для наших задачь - пройдет.

и добавил NUMKEY как стрелики и pg up/dn

http://yadi.sk/d/SfOzhDNDRaD9T

затягивающее дело, собако, надо останавливаться и делать репозиторий ;)

BYTEMAN
29.05.2014, 14:12
Ну это очень сырая и совершенно недоделанная прога, руки до нее так и не дошли. Пока она умеет только показывать каталог диска и извлекать оттуда файлы, причем иногда ошибается на полсектора в ту или другую сторону. Просто стандартный пакет cpmtools оказался еще хуже, а ориентироваться в горе KDI-образов без такой проги тяжеловато
есть же Odi2Wcx для тотала и софтина отсюда: http://zx.pk.ru/showthread.php?t=11294

esl
29.05.2014, 14:33
есть же Odi2Wcx для тотала и софтина отсюда: http://zx.pk.ru/showthread.php?t=11294

не подходит,
пункт первый - Total Commander
пункт второй - винда, посмотри топик
пункт тритий - (не уверен, плагина чтоб проверить) обычно поддерживает только один формат диска (у крорвета нормальное явление разное ко-во системных дорожек)

forth32
29.05.2014, 14:43
Пункт четвертый - мне, например, нужна утилита командной строки, а не гуй. Чтобы можно было, например, распечатать каталог сразу кучки образов. А иначе как ориентироваться в 20-мегабайтной помойке KDI-образов? Такая утилита легко заворачивается в скрипты для выполнения конкретных задач. Есть, конечно, cpmtools, но глюкало оно еще то...

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

esl
29.05.2014, 14:59
точно, про комманд лайн то я и забыл !!!

esl
30.05.2014, 18:25
создал новую тему по эмулятору http://zx.pk.ru/showthread.php?t=23503

2forth32
p.s. твой LAN_poll каждые 50hz ОЧЕНЬ сильно тормозит ;)
с ним FPS в турбо ~200
без 2000

в репозитории новая версия без твоих изменений

Serebriakov
10.06.2014, 18:19
Захотелось потестировать сиё колдунство на реальном железе. Не электронщик, потому есть несколько вопросов (скорее всего глупых).
1) На схемах не указаны некоторые номиналы. Не могли бы вы их уточнить:
На первой схеме интересует диод D1:
https://dl.dropboxusercontent.com/u/32466567/Korvet/Simple.png
На второй конденсаторы С1-С4 (полагаю, С1=С2=С3=С4=?):
https://dl.dropboxusercontent.com/u/32466567/Korvet/Full.png

2) Будут ли работать схемы вот с этим UART-преобразователем (http://www.getchip.net/posts/055-uart-to-usb-prostojj-preobrazovatel-na-attiny2313-versiya-2/) (там используются всего 2 канала, как и у вас в схеме)? И достаточно ли тогда для подключения первой простой схемы или нужна полная?

Хочу сделать цельное устройство USB-KorvetLAN. Будет весело рулить Корветом с нетбука.

P.S. Появилась убер-мечта отправлять на корвет игрушки со смартфона (OTG-UART-KorvetLan), наподобие этого (https://www.youtube.com/watch?v=31ULjsqjiYs). Было-бы так романтично научить взаимодействовать два устройства из разных веков =)

marinovsoft
10.06.2014, 18:28
D1 - 1N4148, кд521 - тысячи их
Номиналы конденсаторов - 1мкф х 16в

forth32
10.06.2014, 21:16
Все верно. Диод подходит любой, пропускающий сквозь себя частоту 20 КГц, то есть вобще практически любой из имеющихся в природе. Для конденсаторов еще важна полярность, на случай если будут ставиться электролиты. Лучше всего посмотреть схему подключения в стандартном даташите на max232 - http://www.ti.com/lit/ds/symlink/max232.pdf

Но вообще-то в 99% случаев достаточно первой схемы. Она проще и не требует питания, которое, как тут выше писали, еще не на всех корветах разведено.

С преобразователем на attiny2313 схема, конечно, должна работать. Только надо смотреть, насколько полно реализован протокол USB-serail в прошивке. Некотрые умники не включают туда режим с контролем четности.
По мне так проще тгда уж сделать переходник на FT232. Уж там точно все правильно реализовано.

Кстати, android полностью поддерживает USB-serial протокол. И termios пддерживает Так что моя прграмма KL по идее должна сбраться с NDK. Хотя под бесклавиатурное устройство надо гуй делать...

Serebriakov
12.06.2014, 00:55
Дошли, значит, руки до документации по корвету, которая приехала ко мне почти год назад. Ранее как-то даже не соизволил вникнуть что там - только пару книжечек по DosLine глянул.
Сейчас понадобились схемы для ремонта и стал вникать... А там!

- Полное описание протокола сети Корвета!
(Форт точно меня убьет, что не поделился во время =)

- Схема ПЗУшки, которая втыкается в слот расширения Корвета!
(на форуме этот вопрос вроде так и не расковыряли как следует (http://zx-pk.ru/showthread.php?t=15297))

И много других интересных штук.

Давно пора было посканировать все что у меня есть.
Да и с дискетами у меня та же беда - пол года в фольге лежат 100 с гаком дискет, все никак дампы не сделаю =(

Короче, сейчас под рукой нет сканера, постараюсь к выходным порадовать.

esl
12.06.2014, 01:37
Дошли, значит, руки до документации по корвету, которая приехала ко мне почти год назад. Ранее как-то даже не соизволил вникнуть что там - только пару книжечек по DosLine глянул.
Сейчас понадобились схемы для ремонта и стал вникать... А там!

- Полное описание протокола сети Корвета!
(Форт точно меня убьет, что не поделился во время =)

- Схема ПЗУшки, которая втыкается в слот расширения Корвета!
(на форуме этот вопрос вроде так и не расковыряли как следует (http://zx-pk.ru/showthread.php?t=15297))

И много других интересных штук.

Давно пора было посканировать все что у меня есть.
Да и с дискетами у меня та же беда - пол года в фольге лежат 100 с гаком дискет, все никак дампы не сделаю =(

Короче, сейчас под рукой нет сканера, постараюсь к выходным порадовать.

одно слово - ЖДЕМ!!!!
ВСЕГО И ПОБОЛЬШЕ !

p.s. можно даже RAW материалы, если чего помогу собрать

p.s. я выкладывал "описание сети" то что у меня осталось, она мягко скажем "странное"

---------- Post added at 00:37 ---------- Previous post was at 00:35 ----------



- Схема ПЗУшки, которая втыкается в слот расширения Корвета!
(на форуме этот вопрос вроде так и не расковыряли как следует (http://zx-pk.ru/showthread.php?t=15297))


как раз "расковыряли", но схема будет подтверждением теории!
да и для повторения - штука нужная, туда КТДП прошивался.
хотя у B2M в эмуляторе - работает.

forth32
12.06.2014, 07:01
- Полное описание протокола сети Корвета!


Дружище, а вот не посканишь ли ты эту книжку в первую очередь? Вот вместо того, чтобы в очередной раз пить пиво, потрать 15 минут на сканер... Хотя если это та самая книжка что выкладывал ESL, толку будет от нее немного.

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



Да и с дискетами у меня та же беда - пол года в фольге лежат 100 с гаком дискет, все никак дампы не сделаю =(


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

Serebriakov
12.06.2014, 13:23
Дружище, а вот не посканишь ли ты эту книжку в первую очередь? Вот вместо того, чтобы в очередной раз пить пиво, потрать 15 минут на сканер... Хотя если это та самая книжка что выкладывал ESL, толку будет от нее немного.

Да, сканирую к выходным.
Сравнил с тем, что выкладывал ESL - да, это выдранная часть из середины полного описания протокола сети.
В общем, это как раз те книжки, о которых писал ESL (http://zx-pk.ru/showthread.php?t=23461) за номерами 1-7 (5 из них толстенькие-составные с несколькими содержаниями, 2 тоненькие). Иногда выдраны некоторые страницы, но в общем состояние хорошее. Начну сканирование с 1-ой, где и описывалась сеть и ПЗУ.
Дискетами займусь на выходных.

esl
12.06.2014, 13:41
Да, сканирую к выходным.
Сравнил с тем, что выкладывал ESL - да, это выдранная часть из середины полного описания протокола сети.


круто!

у меня это целая книжка, в отдельной обложке ;)

это доки из КУВТ ОПТС 1.x (вроде были и 1.1 и 1.0, но точно были 2 версии ПЗУ, но близкие, и точно не 2.0)

Serebriakov
12.06.2014, 21:54
у меня это целая книжка, в отдельной обложке ;)

А на сколько толстенькая книжка у вас? Моя на глаз (точно посмотреть нельзя - из-за нескольких содержаний) - страниц 200. И, вроде, вы писали у вас она под номером 18?
Короче, можно фото обложки, что ли ? Хочется сравнить.

В конце первой книги на обложке выходные данные:
Подготовлено к печати 19.09.1990г.
Формат бумаги 60x80/16
Тираж 400 экз. Заказ №110
Опытный завод, г.Кохтла-Ярве (Эстония!),
Уус-Техасе, 5

esl
13.06.2014, 13:29
А на сколько толстенькая книжка у вас? Моя на глаз (точно посмотреть нельзя - из-за нескольких содержаний) - страниц 200. И, вроде, вы писали у вас она под номером 18?
Короче, можно фото обложки, что ли ? Хочется сравнить.
]

как помнится - тонкая, я весь текст привел
когда добуду - отсканю.

SaintTurnip
13.06.2014, 14:52
не знаю, насколько это вам будет полезно, но у меня есть две книжки:

https://www.dropbox.com/s/htpoy4uvv1ns0u9/baimuratova_korvet_kniga_1.pdf

https://www.dropbox.com/s/kcja4owz8a7oy23/baimuratova_korvet_kniga_2.pdf

вторая - шпаргалка по сетевым операционным системам корвета.

esl
13.06.2014, 15:51
не знаю, насколько это вам будет полезно, но у меня есть две книжки:

https://www.dropbox.com/s/htpoy4uvv1ns0u9/baimuratova_korvet_kniga_1.pdf

https://www.dropbox.com/s/kcja4owz8a7oy23/baimuratova_korvet_kniga_2.pdf

вторая - шпаргалка по сетевым операционным системам корвета.

Огромное спасибо, важна ЛЮБАЯ информация,

эти надо внимательно пересмотреть, но уже обнаружил полезный список литературы !
и документация на net-cpm A

тираж - 50
1997 год

forth32
13.06.2014, 18:02
О, отлично. За вторую книжку отдельное человеческое спасибо! Я как раз занялся дизассемблированием CP/N, документация как раз в тему. Заодно, возможно, разберусь, почему у меня не хочет работать NET/CPM-A и Корнет.

Пора делать отдельную библиотеку и туда сложить все книжки. Тут еще Serebriakov обещал к выходным книжек подогнать...

---------- Post added at 18:02 ---------- Previous post was at 17:59 ----------



тираж - 50
1997 год

Книжек-то всего 50 на всю страну. Это уникальнейший экземпляр! Остальные 49 наверняка уже давно в макулатуру сданы.

Как бы такая судьба не постигла остальные книги. Serebriakov, на тебя вся надежда!

Serebriakov
13.06.2014, 18:31
Пора делать отдельную библиотеку и туда сложить все книжки.
Для этого я и задумал навигатор (http://zx-pk.ru/showthread.php?t=23568) - там будет библиотека всего, что появлялось в сети о Корвете.


Тут еще Serebriakov обещал к выходным книжек подогнать...
Как раз сейчас собираюсь сканировать первую книгу. Если все будет хорошо, к ночи будут raw'ы. После выходных - вылизанный djvu, если успею, т.к. по плану на выходных нужно успеть сдампить дискеты. Вчера хорошенько очистил от пыли 5.25 дисковод (ибо как почитал в одной книжечке по корвету самый страшный враг дискет даже не магнитные поля, а пыль!). Завтра еще предстоит хорошая влажная уборка и распаковка для дампа вот этого:
(кликабельно)
https://dl.dropboxusercontent.com/u/32466567/Korvet/8020_02_small.jpg (https://dl.dropboxusercontent.com/u/32466567/Korvet/8020_02.jpg)
Коробки с "мылышом" вообще перегружены дискетами - недавно приобрел для них на барахолке несколько пластиковых боксов 5,25" - вот и повод произвести замену.


Книжек-то всего 50 на всю страну. Это уникальнейший экземпляр! Остальные 49 наверняка уже давно в макулатуру сданы.
Как бы такая судьба не постигла остальные книги. Serebriakov, на тебя вся надежда!
Вот здесь (http://zx-pk.ru/showpost.php?p=451510&postcount=65) товарищ SilverRay еще два года назад говорил, что у него есть интересная документация, все поплюсовали, на том и заглохло. Я ему отписался - он согласился передать ее мне. Будем ждать. Как только она приедет ко мне - сканирую и выложу.

esl
13.06.2014, 18:59
О, отлично. За вторую книжку отдельное человеческое спасибо! Я как раз занялся дизассемблированием CP/N, документация как раз в тему. Заодно, возможно, разберусь, почему у меня не хочет работать NET/CPM-A и Корнет.


похоже с "нестандартными" всё грустно
есть такие тулзы для корвета как "Sender"
sender, send, snd1
они просто кидают один файл на рму (обычно игрушки в формате .bin так кидали)
сначала кидают "принималку" в формате локальной сети
а потом простешая побайтовая посылка тела (уже код ПЗУ не участвует)
есть варианты где байт 3 раза посылается, есть где 1

похоже что "РОМ" часть у него передается нормально
а вот кастомный - нет

SaintTurnip
13.06.2014, 19:19
(кто о чём, а вшивый...)

Я правильно понимаю, что NET CP/M (и Корнет) это почти полноценный сетевой диск, который мэпится на локальную букву?

Т.е. можно сделать из какого-нибудь RPi карманный файловый сервер, сложить туда весь корветовский софт и забыть о дискетах :-D

(или даже лучше на какой-нибудь меге с SD картой, если разобраться в протоколе обмена рмп-рму в сетевой ОС)



---------- Post added at 19:15 ---------- Previous post was at 19:09 ----------



Книжек-то всего 50 на всю страну. Это уникальнейший экземпляр! Остальные 49 наверняка уже давно в макулатуру сданы.



Все сданы в макулатуру. Мой экземпляр из электронного архива библиотеки.

---------- Post added at 19:19 ---------- Previous post was at 19:15 ----------


Для этого я и задумал навигатор (http://zx-pk.ru/showthread.php?t=23568) - там будет библиотека всего, что появлялось в сети о Корвете.

Навигатор отличная штука. Но нужно выделенное хранилище, потому что ссылки умирают. Может быть, коллективный аккаунт на гитхабе или что-то похожее? Желающие смогут скачать всё разом и сделать зеркало.

esl
13.06.2014, 20:00
(кто о чём, а вшивый...)

Я правильно понимаю, что NET CP/M (и Корнет) это почти полноценный сетевой диск, который мэпится на локальную букву?

Т.е. можно сделать из какого-нибудь RPi карманный файловый сервер, сложить туда весь корветовский софт и забыть о дискетах :-D

(или даже лучше на какой-нибудь меге с SD картой, если разобраться в протоколе обмена рмп-рму в сетевой ОС)



можно, но ТОРМОЗИТЬ будет .....
в доке на NET-CPM с гордостью написано что в спецрежиме копирования с рмп на рму скорость аж 1к в секунду.
при обычных обменах вроде много меньше.

там порт на 19200

SaintTurnip
13.06.2014, 21:13
можно, но ТОРМОЗИТЬ будет .....
в доке на NET-CPM с гордостью написано что в спецрежиме копирования с рмп на рму скорость аж 1к в секунду.
при обычных обменах вроде много меньше.
там порт на 19200

про скорость не подумал. у вас нет документации по порту расширения?

forth32
13.06.2014, 22:37
похоже с "нестандартными" всё грустно
есть такие тулзы для корвета как "Sender"
sender, send, snd1
похоже что "РОМ" часть у него передается нормально
а вот кастомный - нет

Поразбирался я с ними немного. Тут таке дело - с эмулятора на железный корвет все более-менее кидается. Только еще далеко не каждый BIN для этого подходит. У меня получилось только с GONKI.BIN.

Вот с эмулятора на эмулятор - да, не получается. Но тут причина проста - через реальный компорт данные ползут мееееедленно, а через виртуальный пролетают пулей. Тот же CP/N90 грузится в эмулируемый РМУ за пару секунд. В результате принимающий РМУ просто не успевает за потоком данных. Вроде так, хотя подробнее пока не разобрался. Тот же CP/N регулярно теряет байты в сети и виснет даже на железном корвете - этого я вообще понять пока не могу.

---------- Post added at 22:26 ---------- Previous post was at 22:16 ----------


(кто о чём, а вшивый...)

Т.е. можно сделать из какого-нибудь RPi карманный файловый сервер, сложить туда весь корветовский софт и забыть о дискетах :-D

(или даже лучше на какой-нибудь меге с SD картой, если разобраться в протоколе обмена рмп-рму в сетевой ОС)


Протокол там простой как валенок, я на следующей неделе доразбираюсь, и, если интересно, описание сюда вылжу. Однако, кроме скорости, как писал выше ESL, есть еще одна проблема - убогие корветовские биосы жестко завязаны на дискетный формат. То есть сетевой винт большого объема сделать не получится - только огрызки по 800к.
Сама CP/M может работать с носителями, если не ошибаюсь, до 32М. Только для этого придется сильно править биос. Но тогда и сетевой протокол можно сделать свой, более логичный чем в CP/N90. В идеале - иметь возможность смнтировать в качестве сетевого диска каталог на PC, чтобы не уродоваться с созданием образов.

---------- Post added at 22:37 ---------- Previous post was at 22:26 ----------


можно, но ТОРМОЗИТЬ будет .....
в доке на NET-CPM с гордостью написано что в спецрежиме копирования с рмп на рму скорость аж 1к в секунду.
при обычных обменах вроде много меньше.

там порт на 19200

Вообще-то 19200 - это 2К в секунду. Но реально там огромная избыточность, то есть может даже и меньше 1К будет. У меня образ АЦЗУ вычитывается секунды за 2 примерно.

Есть две мысли насчет повышения скорости.

1. Можно просто записать другой делитель частоты в ВВ51 - не 16, а 8. Тогда получим скорость 38400. Тоже не особо много, но все же в 2 раза больше.

2. Еще лучше - задействовать боковой разъем. Скажем, подключить его к LPT-порту PC в двунаправленном режиме. Тут можно получить несравнимо большую скорость, ограниченную только скоростью процессора. Как вариант - загрузку ОС также делать через этот разъем, благо ОПТС это умеет. Все это схемотехнически не особо сложно, но надо писать свой биос, а вот это уже муторно. Но, с другой стороны, это хорошее упражнение для мозгов, почему бы и не заняться...

esl
14.06.2014, 00:54
хуже, что есть ограничение в 800 кб, но мне неясно, как оно влияет на сеть. допустим корнет это советский iscsi :), но линтех по описанию больше файловый, не?

часть про Линтех - совсем не понял :(

и чего все приципились к 800к ?!?

для того времени - вполне логичное ограничение
там лимитируется не биосом как таковым, а размером таблиц,
сделать - ЛЕГКО ;)

правда имхо смысла нет
если сделать работу с образами (внешний порт -> SD)
то имхо удобнее работать со стандартными KDI
туда утилиту монтирования нужного образа и вперед

а писать НОВЫЙ софт, под это дело - имхо смысла не особо много, только доя фана.

благодаря тому что теперь известен сетевой протокол,
можно сделать тулзу для тех у кого есть 8020 но нет на PC дисковода
типа перегнать с PC на Корвет тулзу для форматирования и записи дисков!

SaintTurnip
14.06.2014, 01:55
если доступ к накопителю блочный ("сервер, дай мне третий сектор пятого цилиндра"), то ограничения биоса могут проявляться каким-то образом. но при файловом доступе ("сервер, пришли мне klad2.com") биос вроде не затрагивается.

я так понял из описания, что корнет предоставляет блочный доступ, а net cp/m - файловый. в пользу последнего говорит и то, что все рму имеют одновременный доступ к файлам на дискете (при блочном доступе контроль блокировок нетривиален).

---------- Post added at 01:55 ---------- Previous post was at 01:28 ----------

по поводу образов на сд-карте - почему бы и нет. если переключение будет возможным через консоль корвета, то образы станут вожделенной альтернативой папок.

даже прикидываю, какие функции требуются от утилиты: mount, unmount, list, create, delete, off.

SaintTurnip
14.06.2014, 11:18
forth32, да, о том и речь, что лвс куда проще делается, чем скоростное устройство на порте расширения. сервер можно запустить почти на чем угодно (я бы предпочёл rpi: андроидов не держу, а целый pc гонять для этого больно жирно).

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

(про сложность эмуляции пзу удивился. какая же там скорость опроса? у корвета максимальное быстродействие меньше 500 тыс. оп./сек.)

---------- Post added at 11:18 ---------- Previous post was at 11:10 ----------

кстати, будет время - напишите пожалуйста подробнее про протокол, который вы описали.

SaintTurnip
15.06.2014, 18:46
"Все же - что мы хотим в конечном итоге получить? "

forth32, мы хотим :) получить:
* сервер ЛВС на PC
* внешний накопитель с KDI на SD карте

Оба крайне желательны - первый легко сделать в домашних условиях, а второй удобно использовать (особенно если встроить в корпус).

Предложение. Давайте проектировать так, чтобы накопитель не занимал шину монопольно. Наворачивать много корпусов не хочется, но и терять шину жаль (у меня например есть планы на нее).

(не вынести ли MEGA CP/M в отдельную ветку?)

esl
26.06.2014, 18:58
Вынес отдельно 3 темы

Корвет: ExtROM Open Source extender (http://zx-pk.ru/showthread.php?t=23651)
Локальная сеть корвет - Сетевая ОС CP/N-90 (http://zx-pk.ru/showthread.php?t=23657)
Обсуждение: Локальная сеть корвет - Сетевая ОС CP/N-90 (http://zx-pk.ru/showthread.php?t=23658)

Serebriakov
12.06.2017, 02:17
вот ВСЯ моя папка с дизасмами относящаяся к Корвету
https://dl.dropboxusercontent.com/u/490774/esl-korvet-ida-src-20140520.7z
там постоянный бардак, но хоть немного по темам разбросано
несколько копия - это разные подходы, возможно с разными интересами

Как всегда, интересная ссылка сдохла, но веб-архив спас:
http://web.archive.org/web/20141128232226/https://dl.dropboxusercontent.com/u/490774/esl-korvet-ida-src-20140520.7z

Ну и версия, которая открывает без ошибок базы из архива выше:

могу выложить свою версию, времеено (http://yadi.sk/d/hQ29vdBSR5wzm) когда спросит -> мой ник, отпишитесь как уже.
Пароль: esl (маленькими буквами)

crackintosh
06.01.2018, 16:03
Люди добрые, у кого сохранились эти 2 книги, пожалуйста перезагрузите их, ссылки мертвые. Спасибо.


не знаю, насколько это вам будет полезно, но у меня есть две книжки:
https://www.dropbox.com/s/htpoy4uvv1ns0u9/baimuratova_korvet_kniga_1.pdf
https://www.dropbox.com/s/kcja4owz8a7oy23/baimuratova_korvet_kniga_2.pdf
вторая - шпаргалка по сетевым операционным системам корвета.

DDp
06.01.2018, 18:04
у кого сохранились эти 2 книги
https://yadi.sk/i/6-zgSKg_3REPHE
https://yadi.sk/i/XB5ijN0S3REPLf