
Сообщение от
AFZ
СА сидит на магистрали ЦП. Поэтому для загрузки по сети ПП высылает через DMA в память ЦП программу-загрузчик и запускает ее. Кажется с адреса 10000, но точно не помню. Всё остальное делается этой программой. Вот ее и надо отдизасмить, если это еще не сделано.
Да, примерно так все и выглядит:
Код:
; Обработка пункта меню ЗАГРУЗКА [сеть]
162440$: JSR R4,163006$ ; Вывод "* ЗАГРУЗКА ИЗ СЕТИ *"
.WORD 163573$ ; Адрес надписи
JSR R5,162522$ ; Перекачка загрузчика и его запуск
.WORD 164160$,210,0
; Обработка команды "Т" пультового монитора (тест локальной сети)
162460$: JSR R5,162522$ ; Перекачка программы теста и ее запуск
.WORD 164600$,360,0
; Обработка пункта меню ЗАГРУЗКА [стык С2]
162472$: JSR R5,162522$ ; Перекачка загрузчика и его запуск
.WORD 165540$,25,0
; Обработка пункта меню ЗАГРУЗКА [магнитофон]
162504$: JSR R5,162522$ ; Перекачка загрузчика и его запуск
.WORD 163774$,44,164130$,14,0
; Подпрограмма перекачки загрузчика из сист. ОЗУ и его запуск
162522$: MOV #1000,R0 ; R0 = адрес, куда перекачивается загрузчик
162526$: MOV (R5)+,R1 ; R1 = адрес загрузчика в сист. ОЗУ
BEQ 162542$ ; Конец перекачки
MOV (R5)+,R2 ; R2 = размер загрузчика в словах
162534$: MOV (R1)+,(R0)+ ; Цикл перекачки
SOB R2,162534$
BR 162526$
162542$: CALL 161236$ ; Перевод ЦП в режим USER
MOV #200,R0 ; Копия ССП = 200 (прерывания запрещены)
$MTPS$
MOV #1000,R0 ; Копия СК = 1000 (адрес загрузчика)
$MTPC$
MOV #1000,SP
MOV R3,R0 ; R0 = номер устройства (диска или кассеты ПЗУ)
$RUN$ ; Запуск загрузчика
162572$: RETURN