Важная информация

User Tag List

Страница 174 из 454 ПерваяПервая ... 170171172173174175176177178 ... ПоследняяПоследняя
Показано с 1,731 по 1,740 из 4540

Тема: ДВК (и всё, что с ними связано)

  1. #1731
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде, все аппаратные прерывания должны в дизассемблере "отмечаться", но в целом - это единственное объяснение, как после RTI может не измениться SP.

  2. #1732
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Вроде, все аппаратные прерывания должны в диpссемблере "отмечаться", но в целом - это единственное объяснение, как после RTI может не измениться SP.
    К примеру такой вариант (просто с потолка) - при возврате из эмулятора в PSW выставился бит T, в 14 естественно 0 -> .EXIT/HRESET
    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

  3. #1733
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,210
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продублирую еще раз, а то оказалось в конце предыдущей страницы.

    Понял из-за чего это происходит. Взгляните на это кусок кода:
    Код:
    013544 [000004]:      MOV   SP, R2                ;   R6  :000772 ->   R2
    013546 [000000]:      MOV   #16384., -(R2)        ; 013550:040000 -> 000770
    013552 [000000]:      CLR   -(R2)                 ; 000766:013536
    013554 [000004]:      MOV   #16384., -(R2)        ; 013556:040000 -> 000764
    013560 [000000]:      CLR   -(R2)                 ; 000762:010520
    013562 [000004]:      075002 - Команда не опознана.
    Сами два аргумента ложаться в стек, но не по SP, а по R2. Естественно возникающий TRAP10 ложит туда прерванный PC и PSW. Но п/п исполнения FIS естественно его благополучно затирает. Сами команды FIS стек не используют, а вот здесь получается вот так не очень хорошо.

  4. #1734
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Продублирую еще раз, а то оказалось в конце предыдущей страницы.

    Понял из-за чего это происходит. Взгляните на это кусок кода:
    Код:
    013544 [000004]:      MOV   SP, R2                ;   R6  :000772 ->   R2
    013546 [000000]:      MOV   #16384., -(R2)        ; 013550:040000 -> 000770
    013552 [000000]:      CLR   -(R2)                 ; 000766:013536
    013554 [000004]:      MOV   #16384., -(R2)        ; 013556:040000 -> 000764
    013560 [000000]:      CLR   -(R2)                 ; 000762:010520
    013562 [000004]:      075002 - Команда не опознана.
    Сами два аргумента ложаться в стек, но не по SP, а по R2. Естественно возникающий TRAP10 ложит туда прерванный PC и PSW. Но п/п исполнения FIS естественно его благополучно затирает. Сами команды FIS стек не используют, а вот здесь получается вот так не очень хорошо.
    Это получается то для чего оно и предназначено - чтобы проверить что трап был. Тут не должно проблем быть - просто он все-равно должен бы обнаружить отсутствие FIS несмотря на эмулятор.

    ---------- Post added at 03:40 ---------- Previous post was at 03:36 ----------

    А нет. Все точно - эмулятор-то потрет именно стек
    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

  5. #1735
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,210
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Это получается то для чего оно и предназначено - чтобы проверить что трап был. Тут не должно проблем быть - просто он все-равно должен бы обнаружить отсутствие FIS несмотря на эмулятор.
    А вот проблемы и есть. Объясняю. Команды FIS в качестве указателя используют адрес двух смежных аргументов. Соответственно в стек по R2 ложаться аргументы A и B. Далее команда FIS вызывает прерывание и аргумент B затирается. Но ничего об этом не зная, программа эмуляции складывает два аргумента A и B и ложит результат на место аргумента B, где вообще то находится адрес возврата и затирает его. Вот что-то так.

  6. #1736
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот проблемы и есть. Объясняю. Команды FIS в качестве указателя используют адрес двух смежных аргументов. Соответственно в стек по R2 ложаться аргументы A и B. Далее команда FIS вызывает прерывание и аргумент B затирается. Но ничего об этом не зная, программа эмуляции складывает два аргумента A и B и ложит результат на место аргумента B, где вообще то находится адрес возврата и затирает его. Вот что так.
    Уже написал выше. Правильная работа эмулятора честно трет стек

    ---------- Post added at 03:41 ---------- Previous post was at 03:41 ----------

    Нужно проверять в нем такой случай и отпускать на самотек.
    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

  7. #1737
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,210
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Нужно проверять в нем такой случай и отпускать на самотек.
    Ну что поделать, не могли авторы предусмотреть такой случай. И главное ничего не поделаешь.

  8. #1738
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ну что поделать, не могли авторы предусмотреть такой случай. И главное ничего не поделаешь.
    Ну так теперь выяснили - можно поправить драйвер
    Сэмулировать наличие FIS тут уже не получится - остается сделать вид, что его нету (как оно и есть на самом деле).
    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

  9. #1739
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто-то у нас явно гений..

    Код:
    PC[127032] PSW[351] SP[000746] 0766[135656] : BIC   #15., 18.(SP)         ; 127034:000017 -> 000770:000772
    PC[127040] PSW[341] SP[000746] 0766[135656] : BIS   R5, 18.(SP)           ;   R5  :000010 -> 000770:000760
    PC[127044] PSW[341] SP[000746] 0766[135656] : MOV   (SP)+, 12.(SP)        ; 000746:130232 -> 000762
    PC[127050] PSW[351] SP[000750] 0766[135656] : MOV   (SP)+, R0             ; 000750:004430 ->   R0
    PC[127052] PSW[341] SP[000752] 0766[135656] : MOV   (SP)+, R1             ; 000752:000003 ->   R1
    PC[127054] PSW[341] SP[000754] 0766[135656] : MOV   (SP)+, R2             ; 000754:000766 ->   R2
    PC[127056] PSW[341] SP[000756] 0766[135656] : MOV   (SP)+, R3             ; 000756:105061 ->   R3
    PC[127060] PSW[351] SP[000760] 0766[135656] : MOV   (SP)+, R4             ; 000760:010520 ->   R4
    PC[127062] PSW[341] SP[000762] 0766[135656] : MOV   (SP)+, R5             ; 000762:135656 ->   R5
    PC[127064] PSW[351] SP[000764] 0766[135656] : RETURN                      ; 000764:130232 ->   R7  
    
    PC[130232] PSW[351] SP[000766] 0766[135656] : RTI
    
    #############
    TrapTo(014)
    #############
    PC[000000] PSW[000] SP[000766] 0766[135656] : BIC   R0, R0                ;   R0  :004430 ->   R0  :004430

  10. #1740
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Кто-то у нас явно гений..

    Код:
    PC[127032] PSW[351] SP[000746] 0766[135656] : BIC   #15., 18.(SP)         ; 127034:000017 -> 000770:000772
    PC[127040] PSW[341] SP[000746] 0766[135656] : BIS   R5, 18.(SP)           ;   R5  :000010 -> 000770:000760
    PC[127044] PSW[341] SP[000746] 0766[135656] : MOV   (SP)+, 12.(SP)        ; 000746:130232 -> 000762
    PC[127050] PSW[351] SP[000750] 0766[135656] : MOV   (SP)+, R0             ; 000750:004430 ->   R0
    PC[127052] PSW[341] SP[000752] 0766[135656] : MOV   (SP)+, R1             ; 000752:000003 ->   R1
    PC[127054] PSW[341] SP[000754] 0766[135656] : MOV   (SP)+, R2             ; 000754:000766 ->   R2
    PC[127056] PSW[341] SP[000756] 0766[135656] : MOV   (SP)+, R3             ; 000756:105061 ->   R3
    PC[127060] PSW[351] SP[000760] 0766[135656] : MOV   (SP)+, R4             ; 000760:010520 ->   R4
    PC[127062] PSW[341] SP[000762] 0766[135656] : MOV   (SP)+, R5             ; 000762:135656 ->   R5
    PC[127064] PSW[351] SP[000764] 0766[135656] : RETURN                      ; 000764:130232 ->   R7  
    
    PC[130232] PSW[351] SP[000766] 0766[135656] : RTI
    
    #############
    TrapTo(014)
    #############
    PC[000000] PSW[000] SP[000766] 0766[135656] : BIC   R0, R0                ;   R0  :004430 ->   R0  :004430
    Ну это побочное явление. Суть в том, что эмулятор честно вычисляет результат, но по условиям вызова, кладется он на место адреса возврата и PSW (а за счет порчи PSW и получается trap 14).

    ---------- Post added at 03:47 ---------- Previous post was at 03:46 ----------

    То есть надо в эмуляторе проверять что регистр конфликтует со стеком и в случае такого плевать на эмуляцию.
    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

Страница 174 из 454 ПерваяПервая ... 170171172173174175176177178 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Видеорежимы и работа с ними
    от icebear в разделе Программирование
    Ответов: 23
    Последнее: 26.07.2005, 12:55
  2. Видеорежимы и работа с ними
    от icebear в разделе Несортированное железо
    Ответов: 3
    Последнее: 21.07.2005, 11:49
  3. Ответов: 0
    Последнее: 25.06.2005, 23:14

Ваши права

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