User Tag List

Показано с 211 по 220 из 2264

Тема: Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Относительно перехода процессора 11/83 в режим KERNEL и обратно у меня сложилось следующее впечатление:

    1. При любом запуске блока прерываний - устанавливается режим KERNEL и если предыдущим режимом был режим USER - запоминается значение SP.

    2. Если в результате любой последующей команды значение SP становится больше запомненного - устанавливается режим USER.
    Если в векторе прерывания PSW задан с очищенными двумя старшими битами - устанавливается режим KERNEL. При этом прошлый режим записывается в два следующих бита ниже старших. SP для каждого режима свой и значение его никакого влияния на режим не оказывает. Адрес/PSW для возврата пишется в стек режима который включается.

    ---------- Post added at 11:26 ---------- Previous post was at 11:24 ----------

    Еще насчет режимов - есть такая ошибка некогда распространенная - при возврате из прерывания установить режим 140000 (пользователь, прошлый - кернел). Почему ошибка - думаю объяснять не нужно
    Но давно не встречал.

    ---------- Post added at 11:32 ---------- Previous post was at 11:26 ----------

    То есть подводя итоги: режим процессора задается двумя старшими битами PSW, SP в каждом режиме свой.

    ---------- Post added at 11:35 ---------- Previous post was at 11:32 ----------

    Ну и попутно раз пошла такая пьянка...
    В усерском режиме команда HALT вызывает трап по 4 или 10 (зависит от проца), на 11/83 по 4.
    Команды WAIT, RESET, SPL выполняются как NOP.
    В усерском режиме нельзя трогать приоритет процессора и биты режима.
    С усерского режима нельзя соскочить через RTI - биты режима установятся снова в USER.

    ---------- Post added at 11:39 ---------- Previous post was at 11:35 ----------

    Ну и еще для информации - вектора прерываний - это не адреса 0-774, а адреса, которые в кернелном режиме отображаются в это место. Но обычно они совпадают.

    ---------- Post added at 11:59 ---------- Previous post was at 11:39 ----------

    Вот собственно для демонстрации

    Код:
    .TY TEST.MAC
            .TITLE  TEST
            .MCALL  .PRINT,.EXIT
    
    START:  MOV     #10$,@#14
            CLR     @#16           ;ПЕРЕХОДИМ В КЕРНЕЛ
            BPT
    
    10$:    CALL    MODE
            MOV     #20$,@#14
            MOV     #140000,@#16   ;ПЕРЕХОДИМ В УСЕР
            BPT
            CALL    MODE
            .EXIT
    
    20$:    CALL    MODE
            RTI                    ;ОСТАЕМСЯ В УСЕР
    
    MODE:   MOV     @#177776,-(SP)
            MOV     2(SP),R1
            MOV     #SPC,R0
            MOV     PC,R2
            CALL    $CBOMG
            MOV     SP,R1
            CMP     (R1)+,(R1)+
            MOV     #SSP,R0
            MOV     PC,R2
            CALL    $CBOMG
            MOV     (SP)+,R1
            MOV     #SPS,R0
            MOV     PC,R2
            CALL    $CBOMG
            .PRINT  #STATE
            RETURN
    
    STATE:  .ASCII  /PC=/
    SPC:    .ASCII  /XXXXXX SP=/
    SSP:    .ASCII  /XXXXXX PS=/
    SPS:    .ASCIZ  /XXXXXX/
    
            .END    START
    
    
    .RU TEST
    PC=001020 SP=155204 PS=030000
    PC=001050 SP=000774 PS=140000
    PC=001042 SP=001000 PS=170010
    
    .


    ---------- Post added at 13:10 ---------- Previous post was at 11:59 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    в режим KERNEL
    Никак об эмуляции ВМ3 подумываешь?
    Теперь информации хватает, недостающие мелочи дотестить можно всегда.
    Последний раз редактировалось form; 05.03.2012 в 09:34.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

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

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

Похожие темы

  1. Тесты ВМ1
    от nzeemin в разделе БК-0010/0011
    Ответов: 90
    Последнее: 05.10.2018, 12:24
  2. Диагностика
    от dk_spb в разделе Корвет
    Ответов: 31
    Последнее: 21.07.2017, 23:52
  3. Проблема двух процессоров.
    от Mikka_A в разделе Несортированное железо
    Ответов: 21
    Последнее: 28.11.2006, 17:04

Ваши права

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