Важная информация

User Tag List

Страница 7 из 61 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 602

Тема: Оживление Квант 4С

  1. #61
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очередные новости.

    Поскольку винты, разъёмы и контроллеры как то друг с другом подружить пока не получается, я решил посмотреть, что получиться с переносом RSX-11M-PLUS 4.6 на Квант пока под эмулятором уважаемого Патрона.

    Результат здесь: http://www.kpxx.ru/KBAHT4C/Софт/RSX-...Патрона

    Комментарии.

    1. В силу того, что имя DW слишком известно (Pro) и активно используется в коде оригинального дистрибутива - что бы не переделывать кучу всего в дистрибутиве (принцип минимального вмешательства) я решил изменить имя. Пока остановился на MW (у DEC использовались DW и DZ, у нас - MX, MY, MZ - так что пусть будет MW ). Возможно будут предложены альтернативные и лучшие варианты - переделать тривиально. Имя DW - ещё раз - крайне не удачно в использовании - не предлагать

    2. В архиве листинг Sysgen-а (prep и собственно генерация) и пример моего конфига для эмулятора.

    3. Я не знаю (и пока не думал) - как различать разные варианты винчестеров, которые можно встретить на ДВК и Кванте, поэтому пока реализованный вариант драйвера - 611*4*16 (параметры винтов, которые есть у меня, в конфиге заявлен, как стандартный вариант для эмулятора - 615*4) что не создаёт вроде проблем.

    4. На моём Кванте можно подключить два винчестера - поэтому в драйвере описаны два устройства - MW0: и MW1: Если добавить в эмулятор, то... Параметры второго контроллера - 174060 и 310

    5. Драйвера MW и MY векторизованы, то есть в большинстве вариантов генерации системы их не надо пересобирать. В выложенной системы есть обновлённые библиотеки для BOO и SAV, которые знают устройства MW и MY. ВНИМАНИЕ - MY с BOO и SAV не оттестировано!! Проверена только работа MW - RSX11M.SYS можно переделывать, загружать и сохранять стандартным образом. Генерацию теоретически тоже можно провести - места только мало. Но это решаемо.

    6. Внесены ещё два изменения
    - в MCD.tsk - теперь можно вводить что угодно в качестве команды, если в системе установлена CA. - всё пойдет в неё, включая варианты команд, на которые исходный MCD ругаиЦЦо и не отправляет в CA. - например - одно и двухсимвольные команды. Крайне нужно для MIM-а.
    - в MAC - теперь оно не ругаиЦЦо на восьмой бит в символах, а честно отправляет в obj - что даёт возможным писать программы с полной поддержкой больших малых русских латинских символов. Ещё бы псевдо-графика в кодовой таблице была...

    7. В системе есть две учётки - 1,1/SYSTEM и 200,200/USER

    Если вспомню ещё нюансы - напишу.

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

    Вспомнил ещё что хотел написать - в системе присутствуют DU: и MU: так что на основе выложенного можно создать загружаемое и на simh, а также MT0: MT1: (поскольку есть в эмуляторе) и TT1: (поскольку есть на реальном Кванте)

    Выложенное основано на первом диске оригинального дистрибутива, в котором я грохнул [2,54],[45,*] и ещё чего то из сильно специфического, что на КВАНТЕ не может быть.
    Последний раз редактировалось Hunta; 10.03.2018 в 00:43.

  2. #61
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #62
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очередные новости.

    Вроде как обнаружилась проблема DW в эмуляторе. Читать с головок 4-7 можно, а писать - низзя - адрес не найден. То есть сделанный вариант драйвера на 1024*8*16 позволяет читать диск и даже грузить RSX, но при попытке что то записать - большая вероятность налететь на ошибку. И вроде как это не у меня в драйвере ошибка - читается то всё нормально...

  4. #63
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Очередные новости.

    Вроде как обнаружилась проблема DW в эмуляторе. Читать с головок 4-7 можно, а писать - низзя - адрес не найден. То есть сделанный вариант драйвера на 1024*8*16 позволяет читать диск и даже грузить RSX, но при попытке что то записать - большая вероятность налететь на ошибку. И вроде как это не у меня в драйвере ошибка - читается то всё нормально...
    Да, ошибка в эмуляторе. Сейчас исправлю её, добавлю возможность явно задавать базовый адрес и вектор контроллера DW и сделаю новый релиз эмулятора.

  5. #64
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    to Patron:

    Спасибо ещё раз

  6. #65
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну вот. Благодаря очень оперативного исправлению Patron-ом ошибки и добавлению функционалу эмулятор стал ещё ближе к моему железному аналогу

    Пока так и не понятно, как можно в драйвере различать разные варианты винчестеров, что бы не переделывать драйвер. Я ещё подумаю.
    И доделать сохранение на MY надо. И ещё некоторые мелочи

  7. #66
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Пока так и не понятно, как можно в драйвере различать разные варианты винчестеров, чтобы не переделывать драйвер.
    В родном исходнике DW.MAC есть нужный код (например):

    Код:
    DEVCHR:				;RDxx device characteristics table
    
    ;*****************************************************************************
    ; THIS TABLE MUST BE GROUPED BY THE NUMBER OF HEAD.  THE ENTRIES WITHIN
    ; THE GROUP MUST BE SORTED BY THE NUMBER OF CYLINDERS IN INCREASING ORDER.
    ; THE TABLE IS TERMINATED WITH A HEAD COUNT OF 65535.
    ;*****************************************************************************
    
    ;	C      H    CYL    REAL    USER    HIGH   LOW    USER   DEVICE
    ;	O      E           SIZE    SIZE    SIZE   SIZE   SIZE
    ;	D      A
    ;       E      D
    ;	       S
    
    $TYPE$	TYP50  4.  153.    9792.   9727.      0.  9792.  9727. ;RD50#
    
    $TYPE$	TYP51  4.  306.   19584.  19519.      0. 19584. 19519. ;RD51
    
    $TYPE$  TYP31  4.  615.   39360.  39295.      0. 39360. 39295. ;RD31*$
    
    $TYPE$	TYP52C 5.  697.   55760.  55679.      0. 55760. 55679. ;RD52*  CDC
    
    $TYPE$	TYP32  6.  820.   78720.  78623.  13088. 65535. 65535. ;RD32
    
    $TYPE$	TYP52A 7.  645.   72240.  72127.   6705. 65535. 65535. ;RD52*  ATASI
    
    $TYPE$	TYP52Q 8.  512.   65536.  65407.      1. 65535. 65407. ;RD52*$ QUANTUM
    
    $TYPE$  TYP53  8. 1024.  131072. 130943.  65535. 65535. 65535. ;RD53*$
    
    $TYPE$	0      -1    0.       0.      0.      0.     0.     0. ;TERMINATOR
    Код:
    ;-----------------------------------------------------------------------------
    ;			FIND DEVICE GEOMETRY
    ;
    ; THIS ROUTINE WILL DETERMINE THE TYPE OF DEVICE WHEN TWO OR MORE DEVICES
    ; HAVE THE SAME NUMBER OF HEADS.  THIS IS DONE BY CALCULATING THE ADDRESS
    ; WHICH WOULD WRAP TO THE HOME BLOCK.  THE FIRST 3 WORDS OF THE HOME BLOCK
    ; AND THE WRAP BLOCK ARE COMPARED.  IF DIFFERENT, A WRAP DID NOT OCCUR AND
    ; THE POINTER TO THE DEVICE GEOMETRY/CHARACTERISTICS TABLE IN BUMPED TO THE
    ; NEXT DEVICE.  IF IDENTICAL, THE DATA IN THE HOME BLOCK IS MODIFIED AND
    ; WRITTEN TO THE DEVICE.  THE FIRST WRAP BLOCK IS READ AGAIN AND THE FIRST
    ; 3 WORDS OF THE HOME AND WRAP BLOCKS ARE COMPARED AND IF DIFFERENT, THE
    ; POINTER TO THE DEVICE GEOMETRY/CHARACTERISTICS TABLE IS BUMPED TO THE
    ; NEXT DEVICE.  OTHERWISE, THE POINTER REMAINS UNCHANGED.
    ;
    ; THIS OPERATION CONTINUES UNTIL THE LARGEST DISK WITH A GIVEN NUMBER OF
    ; HEADS IS FOUND.
    ;
    ;  REGISTERS CONTAIN THE FOLLOWING INFORMATION ON ENTRY AND EXIT
    ;
    ;	R0	ADDRESS OF DWID REGISTER
    ;	R1	POINTER TO DEVICE GEOMETRY/CHARACTERISTICS TABLE
    ;		 - UPDATED ON EXIT
    ;	R2	POINTER TO RMON
    ;	R3	DEVICE TYPE
    ;		 - UPDATED ON EXIT
    ;	R4	ADDRESS OF READ ROUTINE
    ;	R5	ADDRESS OF START OF HANDLER
    ;
    ;-----------------------------------------------------------------------------
    
    FNGEOM:	TST	DWTYPS		; Is device type known?
    	BNE	95$		; YES - Don't size device
    	CMP	2(R1),TSIZE+2(R1) ; Does next entry have the same
    				  ;   number of heads?
    	BNE	95$		  ; NO - Done

  8. #67
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очередные новости

    Модуль начальной загрузки исправлен, теперь он работает как с SAV /WB и BOO (это было и раньше) так и с аппаратным загрузчиком
    Позже выложу обновлённый образ

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

    Спасибо, Patron, я подумаю

  9. #68
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Но этот код (похоже) основан на том, что если номер дорожки слишком большой, то контроллер прочитает с привода нулевую дорожку. Не уверен, что КЖД ДВК ведёт себя аналогичным образом.
    Последний раз редактировалось Patron; 26.07.2017 в 22:42.

  10. #69
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,995
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проблема ещё в том, что на PRO много чего проинициализировано к моменту начала загрузки - в том числе, насколько я понимаю - есть определённая инфа в NVRAM. В то время как на ДВК ничего это нет. Собственно, из за этого первый вариант загрузчика и не грузил... А так же проблема в том, что геометрию винта надо знать в двух не связанных местах - драйвере и начальном загрузчике... В общем, есть над чем подумать.

  11. #70
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Проблема ещё в том, что на PRO много чего проинициализировано к моменту начала загрузки - в том числе, насколько я понимаю - есть определённая инфа в NVRAM. В то время как на ДВК ничего это нет.
    В загрузчике DW из RT-11 мне таких моментов не попадалось - там просто пересчитываются головки ( читается нулевая дорожка на 7, 6, 5, 4, 3, 2, 1, 0 головке, пока не пропадёт ошибка чтения ), а количество дорожек в загрузчике не интересует, потому что загрузчик ничего не пишет, а если откуда-то читает, то значит там точно есть что прочитать.

    Цитата Сообщение от Hunta Посмотреть сообщение
    А так же проблема в том, что геометрию винта надо знать в двух не связанных местах - драйвере и начальном загрузчике...
    В драйвере при каждой загрузке в память сначала пересчитываются головки, а потом ищется последняя дорожка по списку возможных номеров последних дорожек для всех вариантов дисков с обнаруженным числом головок. При этом ( насколько я понял ) используется то, что если прочитать следующую за последней дорожку, то прочитается нулевая дорожка.

    Поэтому на реальном железе ДВК надо проверить два момента:

    1. Возвращается ли ошибка чтения при чтении с несуществующей головки.

    2. Что происходит при чтении дорожек, следующих за последней.

Страница 7 из 61 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Квант-БК МС0530
    от moxjemi в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 1
    Последнее: 20.05.2020, 17:59
  2. оживление C64
    от Fluffy Dragon в разделе Commodore 16/64/128
    Ответов: 50
    Последнее: 10.05.2017, 18:58
  3. Квант
    от Mx_Serg в разделе Специалист
    Ответов: 45
    Последнее: 20.03.2017, 02:58
  4. Квант-БК на ВГ2
    от Sergei Frolov в разделе Несортированное железо
    Ответов: 1
    Последнее: 27.07.2011, 14:21
  5. Квант 4С
    от Sergei Frolov в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 16.04.2008, 14:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •