Просмотр полной версии : Загрузка RT-11 в ДВК через telnet-интерфейс
form, Ещё вариант, поставь в эмуляторе 11/03 процессор или хотя бы 23.
form, Ещё вариант, поставь в эмуляторе 11/03 процессор или хотя бы 23.
Это убьет возможности образа системы который там записан и потребует переделки самого образа.
form, Попробовал на Эм.PDP11 через сеть загрузить эмулятором VT52 на разных частотах эмулируемого процессора. До 2000 MIPS нормально грузится, после 2000 пишет "HX-W-BAD Packet".
Это я к тому что теоретически НХ протокол не пойдёт если процессор выдаёт больше 2000 MIPSов.
теоретически НХ протокол не пойдёт если процессор выдаёт больше 2000 MIPSов.Не пойдёт через загрузчик HX с обычным таймаутом. Для любого таймаута ( кроме бесконечного ) найдётся такое быстродействие, которое вызовет ошибочный таймаут.
Patron, Понятно, но в случае с formom загрузка идет обычным способом с диска DU. Захват диска НХ не происходит на стороне клиента. Скорей всего в драйвере что то. Я думаю можно сделать как в модемной связи, сервер посылает запрос и получает ответ, потом высчитывает время от посылки до ответа и выставляет минимальный тайаут (некий PING что-ли). Ну и дальше продолжает работать в соответствии с длительностью отклика.
Захват диска НХ не происходит на стороне клиента. Скорей всего в драйвере что то.Если на закладке HX Log не отмечается поступивший запрос - проблема не в драйвере.
Если на закладке HX Log не отмечается поступивший запрос - проблема не в драйвере.
Лог написал одну строчку- Unit:0 Block:1 ByteCoynt:512.
До 2000 MIPS нормально грузится, после 2000 пишет "HX-W-BAD Packet".Сейчас посмотрел - таймаут есть только во внешнем загрузчике. Драйвер HX работает без таймаута, поэтому если грузить HX родным загрузчиком HX ( который не умеет устанавливать дату ), то загрузка и работа возможны при любом быстродействии.
После команды DIR HX: перевод строки и мигающий курсор.В драйвере HX нет таймаута, поэтому если какой-то байт пропал по дороге - драйвер HX будет ждать этот байт до бесконечности.
Когда драйвер HX завис в ожидании пропавшего байта - ему можно "скормить" несколько нажатий клавиатуры и тогда после получения ожидавшегося количества байтов драйвер завершит чтение с ошибкой.
Такой подход в комбинации с командой: DUMP/TERM/BYTE/IGNOR HX0:/ONLY:nn ( где nn - номер читаемого блока ) - позволяет вывести на экран дамп всех принятых драйвером байтов.
ему можно "скормить" несколько нажатий клавиатуры
Не помогает.
позволяет вывести на экран дамп всех принятых драйвером байтов. После команды получил ответ "simulation stopped, pc: 001510 ( TSTB @#177560)
Goodbay"
...
И т.д.
После команды получил ответ "simulation stopped, pc: 001510 ( TSTB @#177560)Видно, что висит на ожидании байта. Т.е. по ходу передачи или пропадает часть байтов, или портится передаваемый в самом начале счётчик байтов и драйвер считает, что должен принять больше байтов, чем есть в пакете.
Не исключено даже, что не проходит заголовок пакета с запрошенными данными и драйвер HX, отправив запрос - пропускает все "посторонние байты" в ожидании сигнатуры заголовка.
В любом случае причина скорее всего в искажении 8-битных байтов при их передаче. При текстовом обмене проблем не возникает, а при двоичном - они есть.
Можно сделать тестовую версию драйвера HX, которая будет работать с таймаутом и "дублировать словами" все получаемые драйвером команды и данные.
На самом деле есть еще один нюанс...
В запускаемом SimH код CTRL/P опознается как останов эмуляции (с последующим выходом так как следом за загрузкой в конфиге идет команда QUIT).
В оригинале SimH не позволяет запретить клавишу останова. Я когда делал вел порт для OpenBSD там добавлял такой функционал. Могу и здесь собрать такой вариант.
Patron, Я тут подумал, может в НХ использовать протокол FTP. Он как раз использует двоичный режим.
Написана тестовая версия драйвера HX: HX_test_version_v1.0 (http://emulator.pdp-11.org.ru/misc/HX_test_version_v1.0.zip)
Режим сжатия не используется.
В настройки добавлен параметр WAIT, задающий число полных циклов ожидания ( по 65536 запросов в каждом цикле ) при ожидании байтов в порту HXCSR. Значение по умолчанию 16.
.SET HX LIST
HX test version v1.0 2014
SET HX active parameters
========================
NoERLG
NoTIMIT
HXCSR = 177560
TTCSR = 177560
Wait = 16
.
Теперь при пропаже байтов - драйвер HX сообщает об истечении таймаута:
.DU/TE/BY HX0:/ONLY:0
?HX-W-READ DATA TIMEOUT
?DUMP-F-Input error HX0:
.
Сообщается о таймауте как при ожидании заголовков пакетов, так и при ожидании байтов данных ( если заголовок был принят, но некоторые байты данных потеряны ).
При чтении - все неопознанные байты ( до приёма заголовка ) помещаются в приёмный буфер пользователя. В момент приёма заголовка указатель сохранения байтов вновь устанавливается на начало буфера пользователя. Это позволяет анализировать принятые данные даже при искажении заголовка пакета ответа.
...
form, Перезалей драйвер пожалуйста.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot