С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Titus, ещё вопрос про загрузку с дискеты.
У себя я вижу что загружается 512 байт первого сектора, но загрузчик выглядит довольно странно. Так и задумано? Или этот код вообще не предназначен для исполнения?
Код:001000 NOP 001002 BR 001036 001004 HALT 001006 HALT 001010 HALT 001012 HALT 001014 HALT 001016 HALT 001020 HALT 001022 HALT 001024 HALT 001026 HALT 001030 HALT 001032 BIC (R4), (R0)+ 001034 MOVB 000400(R0), (R0)+ 001040 JMP @#000574 001044 HALT 001046 HALT 001050 HALT 001052 HALT
Тоже не могу пояснить, потому что основательно подзабыл.
Думаю, @Alex_K и тут лучше меня подскажет.
В первичном загрузчике в трёх словах перед точкой входа записаны слова конфигурации - на какой шине используется (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
Насколько я понимаю, буфер действительно общий для дисковода и винчестера.
И это совершенно отдельные 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)