Цитата Сообщение от Patron Посмотреть сообщение
Вот исходник обработки меню загрузки из ПЗУ УКНЦ:

Код:
; Обработка вызова меню загрузки (M)
161160$:JSR     R4,163006$      ; Вызов меню загрузки
        .WORD   163505$
        CALL    172614$         ; Прочесть данные из канала 0 (номер пункта)
        MOV     R0,R1           ; R1 = номер выбранного пункта * 2
        CALL    172614$         ; Прочесть данные из канала 0 (номер уст-ва)
        CALL    @162350$(R1)    ; Вызов соответствующей п/п
        BR      161160$
Там сначала читается номер пункта меню, потом читается номер загружаемого привода и помещается в R0. Получается, что при загрузке не через загрузчик, а через 0-й блок системного образа - можно при помощи меню загрузки передавать в R0 номер загружаемого привода. В загрузчике я это убрал, но если начальное значение R0 у УКНЦ не случайно - можно вернуть в загрузчик выбор загружаемого привода при помощи меню загрузки.
Меню загрузки вызывается из программы в ЦП с помощью Esc-последовательности. Далее ПП уже обрабатывает эту Esc-последовательность и выводит на экран меню загрузки и управляет им. По нажатию <Enter>, <ИСП> или <0> в ЦП по каналам клавиатуры передаются два байта - один из них номер пункта меню*2, а второй - номер устройства. Но номер устройства в меню можно выбрать только для пунктов 1.дисковод и 2.кассета ПЗУ, для остальных пунктов выбор номера устройства невозможен, в этом случае передаваемое значение не определено. Что там может быть можно глянуть в программе управления меню УСТАНОВКА и ЗАГРУЗКА, располагается в ПЗУ с адреса 100000.