В архиве - HX_Server_05.01.13_17-04.
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName="COM1"
...
Вид для печати
В архиве - HX_Server_05.01.13_17-04.
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName="COM1"
...
Только вряд ли драйвер HX, который там используется, сможет нормально читать-писать через C2 УКНЦ, т.к. он настроен на адрес порта 177560.
Какой адрес порта С2 у УКНЦ ?
У HX запрос протокола вылез на экран из-за того, что драйвер настроен на порт 177560.
Нужно сгенерить вариант драйвера HX.SYS для УКНЦ, подставив туда правильный адрес порта.
Кто знает адрес С2 у УКНЦ ?
Новый вариант - HX_Server_-_UKNC_05.01.13_17-04
Добавлены исходники драйвера HX.SYS.
Драйвер HX.SYS изменён для работы с портом 176570 .
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName="COM1"
...
Где ХЭППИ ФИНАЛ ? Скриншот - с системой и игрушками )))
http://i.piccy_.info/i7/9803a20b6610...7048/1_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x179-r/i.gif
http://i.piccy_.info/i7/8ec1259bc72c...2746/2_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x179-r/i.gif
http://i.piccy_.info/i7/2a8f326195f7...3519/3_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x178-r/i.gif
Понятно, где собака порылась..
Загрузчик считывает значение R0 и использует его в качестве номера загружаемого юнита.
Решений два:
1. Как-то обнулить R0 перед запуском загрузчика.
2. Подключить загружаемый образ к тому приводу HX, куда по факту "смотрит" R0 ( на приведённом скриншоте это - HX2: ).
http://i.piccy_.info/i7/8ed3e7ec79f6...444444_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x179-r/i.gif
На экране УКНЦ просто моргает курсор и надпись ЛАТ.
Сейчас отладочную версию загрузчика сделаю.
что то не так, но прогресс на лицо! )
Мне кажется или проблема по прежнему в неправильном HX.SYS ?
Моя попытка "пересобрать" драйвер что-то не увенчалась
http://savepic.ru/3801061.png
---------- Post added at 20:07 ---------- Previous post was at 20:05 ----------
Я механизм не совсем вникаю, но вот файл HXBOOT это куда вообще лепиться?
И если лепиться, там же адреса внизу в последовательности строк с окончанием на м,
все ли правильные в случае с УК-НЦ ? )
Да, в этом случае у УКНЦ нет выбора, откуда грузиться. Либо при загрузке спрашивать, как драйвер жесткого диска WD, либо делать выбор в HX-сервере.
Кстати, все надписи, которые должны по идее выводиться на экран, благополучно выводятся в стык С2. Также я смог загрузиться только при выключенном сжатии.
Т.к. использую полный кабель с задействованными линиями CTS и RTS, то в ini-файле установил параметры fDtrControl=DTR_CONTROL_ENABLE и fRtsControl=RTS_CONTROL_ENABLE.
---------- Post added at 20:47 ---------- Previous post was at 20:16 ----------
palsw, а как же она у Вас на УКНЦ заработала? Там же вход закрыт для посылок извне, надо на вход 7 (сигнал 109) подавать единицу и вход 8 (сигнал 107) на землю вешать, иначе посылки уходить не будут.
Хотелось бы увидеть схему кабеля.
Alex_K, схема кабеля из поста http://zx-pk.ru/showpost.php?p=392288&postcount=33
Ps:Спаять еще одну "косичку" дело 5 мин -например из этого поста http://zx.pk.ru/showpost.php?p=201649&postcount=520 но незнаю будет работать на моей плате (плата у меня с кварцами разбросанными по углам и 3 микросхемы ГФ24
Это заготовка с простейшим загрузчиком HX - если кто-то захочет написать HXBOOT.SAV размером один блок, который можно будет загружать вместо нулевого блока образа и настраивать номер загружаемого привода в R0.
Сделал отладочную версию HX_Server - UKNC_Test_1.0, где HX.SYS должен выводить сообщения на системный терминал ( в том числе кое-какие отладочные ) и сжатие в первичном драйвере выключено.
...
http://i.piccy_.info/i7/53bfe4e855d4...974/11_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x179-r/i.gif
http://i.piccy_.info/i7/310595e1811f...454/22_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x180-r/i.gif
http://i.piccy_.info/i7/dd0ce3c8eba8...410/33_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x179-r/i.gif
Ну, одна из главных проблем - на УКНЦ по умолчанию включен сетевой таймер, поэтому обычно в загрузчике ячейки 100 и 102 содержат 102 и 2 (RTI). По умолчанию сжатие включено. При выключенном таймере (там еще с помощью RESET надо сбросить запрос на прерывание) в конце-концов останавливается по адресу 177562.
В логе бесконечно пишет: "HX: READ: Unit:2 Block:2 WordCount:1024".
Сделал отладочную версию HX_Server - UKNC_Test_1.1 - в предыдущей версии в первичном драйвере использовался R4, что фатально влияло на BSTRAP..
...
Увы. При включенном таймере останавливается на ячейке 12. При выключенном и сброшенном таймере все также - лог забит сообщениями "HX: READ: Unit:2 Block:2 WordCount:1024".
---------- Post added at 21:51 ---------- Previous post was at 21:50 ----------
После долгих попыток остановился по адресу 160.
---------- Post added at 21:56 ---------- Previous post was at 21:51 ----------
palsw, по поводу TU58, попробуй спаяй кабель, как у меня. Соответственно UKNCComSender надо взять из того же сообщения. Т.к. кабель с контролем передачи, то контроль по DTR и RTS должен быть разрешен.
Сделал отладочную версию HX_Server - UKNC_Test_1.2 - теперь в первичном загрузчике HX.SYS установлен вектор 0100, а отладочные сообщения отключены.
...
Alex_K, я только что спаял еще одну "косичку" из поста http://zx.pk.ru/showpost.php?p=201649&postcount=520 TU58 отреагировала на нажатие клавиши пробел и загрузка пошла !
http://i.piccy_.info/i7/45131bad875e...49_843_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x180-r/i.gif
Ура три раза! Всем ! Да здравствуют Ассемблер и Паяльник ! Patron, Alex_K - неоценимый вклад !
Теперь веб-архив по настоящему полезен становиться ! )))
palsw, теперь просто или на системную дискету или (а есть возможность работать с ещё одной дискетой при таком варианте загрузки?) любые тестовые программы для УК-НЦ !
"Поехали"
http://i.piccy_.info/i7/d57bbf58cbea...20_484_240.jpghttp://i.piccy_.info/a3/2013-01-05-1...40x180-r/i.gif
---------- Post added at 21:19 ---------- Previous post was at 21:18 ----------
Patron, работает только на минимальном варианте "Косички" - на полном варианте даже не реагирует на загрузку С2
А не шлёт ли мой вариант UKNCcomSender один лишний байт..
Сделал отладочную версию HX_Server - UKNC_Test_1.3 - теперь перед приёмом пакета первичный драйвер пропускает лишние байты, если их шлёт UKNCcomSender.
...
При использовании дополнительных сигналов надо изменить настройки COM-порта PC в файле Terminal_ComPort_Adapter.ini
---------- Post added at 21:25 ---------- Previous post was at 21:23 ----------
При использовании CTS и RTS, в файле Terminal_ComPort_Adapter.ini нужно установить параметрыКод:fDtrControl = DTR_CONTROL_ENABLE
fRtsControl = RTS_CONTROL_ENABLE
Patron, кстати ошибка в драйвере HX.SYS.
Вместо:
надоКод:TTKS =: TT.CSR
TTKB =: TKS +2
TTPS =: TKS +4
TTPB =: TKS +6
а то надписи все так и не выводятся на экран.Код:TTKS =: TT.CSR
TTKB =: TTKS +2
TTPS =: TTKS +4
TTPB =: TTKS +6
Пожалуйста прилепите именно тот образ дискеты который с HX.SYS для УК-НЦ после внесения всех поправок - что бы был в теме и для меня ! ) На основе этой дискеты
можно сборник тестов или игрушек сделать попробовать и ещё в силе вопрос о возможности обращения ко второму устройству? (второй дискете?)
В приложении - HX_Server_-_UKNC_05.01.13_22-47.
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName = "COM1"
...
Теперь сжатие по умолчанию включено, а режим сжатия запоминается от запуска к запуску
...Код:[HX.ini]
InitialStateOf[PackData] = 1
SaveChangesFor[PackData] = 1
Есть еще ошибка. Попробовал я после загрузки просканировать диск с помощью команды DIR/BAD/FIL. В итоге долго и упорно грузился DUP, потом после запроса 18432 слов с блока 0, сразу же запросилось 256 слов с блока 0 и 2048 слов с блока 417, ну и монитор вылетел в пультовый отладчик с сообщением, что "?MON-F-System read failure halt". В регистре 176570 установлен бит 12 - ошибка переполнения.
---------- Post added at 23:28 ---------- Previous post was at 23:02 ----------
Загрузил версию RT-11 V05.07, памяти она жрет больше, поэтому по команде DIR/BAD/FIL захватывается только 16128 слов. Складывается впечатление, что если запрашивается больше 16384 слов, то возникает ошибка.
По счастью - эта ошибка у меня воспроизводится в точности, поэтому - вскоре я её устраню.
При включенном сжатии ошибка пока не проявилась ( команда ещё выполняется - DUP прочитал уже 7 раз по 18432 ).
Возможно, тут дело в том, что сжатие получилось очень сильным и реальных байтов передаётся мало.
---------- Post added at 22:37 ---------- Previous post was at 22:33 ----------
http://emulator.pdp-11.org.ru/misc/Dir-Bad.pngКод:.DIR/BAD/FIL
?DUP-I-No bad blocks detected HX0:
А УКНЦ при включенном сжатии не работает. Загрузил систему без сжатия, потом включил его. Чуть-чуть прочиталось и на этом все остановилось. При этом даже не работает перезапуск с адреса 0, вываливается в пультовый отладчик с сообщением о невозможности прочесть систему. После отключения сжатия перезапуск по нулевому адресу прошел нормально.
Есть тут еще проблема. Все дело в том, что на 1801ВП1-065 контроль линий передачи аппаратный, а на PC он программный. Соответственно после того как с на УКНЦ мы вывалились в пульт, то PC может послать очередной байт, и соответственно возникнет ошибка переполнения. Приходится в пультовом отладчике много раз читать регистр 176572, до тех пор, пока его значение не устаканится, т.е. с PC больше ничего не идет. После этого и перезапуск с нулевого адреса нормально проходит. Поэтому неплохо было бы в сервере сделать контроль по тайм-ауту, если пауза большая, то прерывать передачу и входить в режим восстановления связи.
В приложении - HX_Server_-_UKNC_06.01.13_00-18.
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName = "COM1"
...
Проблема была в драйвере HX.SYS - при чтении несжатых данных с размером пакета > 32767.
...
Это невозможно.
Но при посылке Break все буфера очищаются. Посылать Break в мультиплексор HX пока можно только с терминала ( кнопкой клавиатуры [Pause/Break] ).
Чтобы подключить к мультиплексору HX терминал - нужно добавить следующие строки в разделы UKNC_HX_COM.cfg:
Можно ещё добавить секцию настроек для терминала:Код:[modules]
Terminal_module = Terminal_module.em
[objects]
VT52 = Terminal_module:Terminal
[links]
HX [TTY] <==> VT52
Код:[VT52.ini]
TabTitle=""
nFocusOnFirstOutput = 1
CURSOR_Y_START_% = 85
TerminalStatusBar_Part[CPS_Limit]= nPosition[2] | nPriority[6] | bHidden[1]
InitialStateOf[RusKeys] =1
SaveChangesFor[RusKeys] =0
InitialStateOf[GoldMode]=0
SaveChangesFor[GoldMode]=0
InitialStateOf[Log] =0
SaveChangesFor[Log] =0
InitialStateOf[Lc] =0
SaveChangesFor[Lc] =0
InitialStateOf[Bold]=0
SaveChangesFor[Bold]=0
InitialStateOf[RusLat]=0
SaveChangesFor[RusLat]=0
FontSize =0
FontFace ="Courier New"
bFontAntialiasDisable = 1
InitialStateOf[StatusBar] = 0
SaveChangesFor[StatusBar] = 0
InitialStateOf[ControlBar] = 0
SaveChangesFor[ControlBar] = 0
InitialStateOf[TerminalStatusBar]= 1
SaveChangesFor[TerminalStatusBar]= 0
InitialStateOf[SlowMultiByte]=1
SaveChangesFor[SlowMultiByte]=0
Cursor_OFF_Latency_MS=30
Да, проблема исчезла. Команда DIR/BAD/FIL отработала без проблем. Далее я решил нагрузить канал командой DIFF/BIN/DEV HX0: HX1:. Удивительно то, что BINCON не запросил размер дисков, ну да ладно. Более удивительно, когда BINCON полез за границу диска, т.е. запрашивал номер блока, больше чем 1600. Со стороны HX-сервера соответственно была ошибка "HX:ReadDSK -- ОШИБКА". Далее был запрос блоков 417 (длина 2048 слов) и 401 (длина 6144). Во время этого чтения возникла ошибка TRAP10 по адресу 157520. Соответственно код там такой:
Этому соответствует код из драйвера:Код:157512: 122323 CMPB (R3)+,(R3)+
157514: 004767 CALL 157002
157516: 177262
157520: 005303 DEC R3
157522: 001375 BNE 157516
Но в данном драйвере SOB является макросом, поэтому конструкция ".-4." срабатывает не на начале макроса, а на команде BNE, поэтому переход осуществляется не на команду CALL, а на ее аргумент, отсюда и TRAP10.Код:Skip:
CmpB (R3)+, (R3)+ ; R3 += 2;
Call ChIn
SOB R3, .-4. ; Get packet bytes.
Можно ситуацию убыстрить командой DIFF/BIN/DEV HX0:/ST:1590. HX1:/ST:1590..
Супер-ошибка, сейчас исправлю.
Кстати, т.к. сервер выполняет атомарные операции, то лучший способ всё сбросить - перезапустить сервер.
Теперь при запуске сервера он будет чистить выходной буфер COM-порта, но не трогать входной, поэтому (по идее) сервер можно будет запускать даже после отправки запроса драйвером ( типа, срубать сервер после начала показа каждого блока дампа по команде DUMP/TERM HX0:, а когда драйвер HX.SYS посылает запрос чтения следущего блока - опять запускать сервер и всё должно работать ).
В архиве - HX_Server_-_UKNC_06.01.13_02-23
Номер используемого COM-порта PC нужно указать в файле UKNC_HX_COM.cfg, в разделе
Настройки параметров COM-порта PC - в файле Terminal_ComPort_Adapter.ini.Код:[ComPort.ini]
PortName = "COM1"
...
- Исправлен SOB-bug ( надеюсь );
- Теперь при запуске сервера выходной буфер COM-порта очищается, а входной - нет.
...