Я, конечно, в этом ничего не понимаю, но разве после
001000 NOP
001002 BR 001036
мы попадаем на 1034, а не на 1036
001034 MOVB 000400(R0),
Я, конечно, в этом ничего не понимаю, но разве после
001000 NOP
001002 BR 001036
мы попадаем на 1034, а не на 1036
001034 MOVB 000400(R0),
1036 - BR 1040
1040 - JMP @#000574
И вообще это этот код должен грузиться с нуля, а не с 1000
- - - Добавлено - - -
И вдогонку - вообще сильно похоже на обычный код в начале первичного загрузчика
В первичном загрузчике в трёх словах перед точкой входа записаны слова конфигурации - на какой шине используется (QBUS, UNIBUS и т.д. и т.п.), сколько сторон. При этом третье слово может быть командой 400(BR ENTRY) - одна сторона, либо 100400(BMI ENTRY) - две стороны. Вот на это третье слово и осуществляется переход.
- - - Добавлено - - -
Вдогонку, а как у СОЮЗ-НЕОН буфер считывается? Он маппируется в память или последовательно считывается через какой-то регистр? Если считывается через регистр, то как сбрасывается счетчик буфера?
nzeemin(31.12.2022)
Как я понял, загрузка из сектора диска в один из четырёх буферов идёт автоматически, нужно только выбрать текущий буфер.
А дальше буфер процессором вычитывается последовательным байтовым чтением регистра HD.BUFF:
Код:013504 MOVB (R0), (R1)+ 013506 MOVB (R0), (R1)+ 013510 SOB R3, 013504
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Насколько я понимаю, буфер действительно общий для дисковода и винчестера.
И это совершенно отдельные 2К на отдельной 537РУ10, на память не смаплена, доступ только через регистр HD.BUFF.
Переключение с дисковода на винчестер происходит установкой бита 3 регистра hd.sdh = 161054.Код:4.3.8. Контроллер НГМД/НЖМД Контроллер совмещает в себе функции управления НГМД (1─2 накопителя) и НЖМД (1 устройство). Управление и обмен данными с НГМД осуществляется БИС КР1818ВГ72А (D59). Аналогичные функции для НЖМД выполняет БИС КМ1809ВГ7 (D62). Контроллер имеет совмещенную шину для всех подключаемых накопителей. Контроллер также включает в себя буферную память 2К байт на основе БИС 537РУ10 (D61), счетчик адреса буферной памяти К561ИЕ10 (D60), а также БИС ПЛМ (D63:D67). Контроллер подключен к системной шине адресаеданных через буфер КР1533АП6 (D58).
Мы сейчас по эмулятору двигаемся вместе с @xolod, он аппаратные вещи раскапывает. Может ещё что подскажет по части буферов.
Последний раз редактировалось nzeemin; 31.12.2022 в 21:42.
Alex_K(31.12.2022)
Да вроде нет, они там так чисто информационные.
Вторичный загрузчик занимает на нулевой дорожке 3-й, 4-й, 5-й и 6-й сектора.
Вот тут и вопрос. Насколько я понимаю, контроллер считывает сектор в буфер и устанавливает в своем регистре статуса готовность. Далее этот буфер должна считать программа. А вот как далее - даётся команда на чтение следующего сектора или контроллеру можно дать задание на чтение нескольких секторов? Доку на контроллер дисковода пока не читал.
nzeemin(01.01.2023)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)