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

User Tag List

Страница 179 из 453 ПерваяПервая ... 175176177178179180181182183 ... ПоследняяПоследняя
Показано с 1,781 по 1,790 из 4525

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

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

    По умолчанию

    Хотя в любом случае, он пытается вмешаться в уже проделанную BSTRAPом работу на основе своих личных впечатлений, что неправильно.
    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. #1782
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Я особо в код драйвера не вглядывался, но стоит посмотреть как работает эмулятор с FIS-командами, если в качестве указателя аргументов используется указатель стека SP. Здесь придется адрес возврата переносить в следующие два слова. Ну и по поводу EIS, тоже может быть такая конструкция, типа ASH -2(SP),R0.
    Почему ASH -2(SP), R0 может требовать корректировки адреса возврата?

    ---------- Post added at 13:56 ---------- Previous post was at 13:53 ----------

    Типа, просто отказываться выполнить команду, если регистром-приёмником является R6 или источник был затёрт при входе в прерывание.
    Последний раз редактировалось Patron; 01.03.2012 в 15:06.

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

    По умолчанию

    Вобщем посмотрел что там со стеком делается... Там это делается из расчета, что оно в подпрограмме. Но на самом деле все в принципе упрощается - незачем по 10 раз одно и то же делать.

    Вот к примеру прототип:

    Код:
            .TITLE  EM -- EIS/FIS EMULATION DRIVER
            .IDENT  /V02.00/
    
            .MCALL  .ASSUME,.DRDEF,.DSTAT,.EXIT
            .MCALL  .PRINT,.TTYOUT
    
    ; Одновременная установка WONLY$ и RONLY$ эффективно избавляет
    ; нас от потребности заниматься онанизмом после .DRBEG.
    ; Запретить FETCH для данного драйвера - благородное дело.
    ; Если будет собираться в 5.01 и старее, можно просто закоментить
    ; DRPTR.
    
            .DRDEF  EM,377,WONLY$!RONLY$,0,0,0
            .DRPTR  FETCH=*NO*
    
            .DRSET  ON,     O.ON-O.BASE,    O.EXEC
            .DRSET  OFF,    O.OFF-O.BASE,   O.EXEC
            .DRSET  INFORM, O.INFO-O.BASE,  O.EXEC
    
    ; Эти опции у нас делают примерно одно и то же. Попутно предупреждаем
    ; пользователя, что если он указал несколько опций в строке - хрен ему.
    
    O.EXEC: TSTB    -(R5)
            BEQ     40$
            JSR     R0,10$
            .ASCII  /?EM-W-Options ignored - /<200>
            .EVEN
    
    10$:    TST     (SP)+
            .PRINT
    20$:    TSTB    -(R5)
            BEQ     30$
            .TTYOUT @R5
            BR      20$
    30$:    .PRINT  R5
    
    40$:    JSR     R1,50$
            .RAD50  /EM/
            .BLKW   4
    50$:    MOV     R1,R0
            TST     (R1)+
            MOV     R1,@SP
            ADD     PC,R3
    
    O.BASE: .DSTAT
            MOV     4(R1),R1
            BCC     10$
            RETURN
    10$:    JMP     @R3
    
    ; Точки входа ON/OFF/INFORM. Сюда попадаем с адресом
    ; загрузки драйвера в R1 (0 если не загружен, в этом случае Z установлен).
    
    O.ON:
    O.OFF:
    O.INFO:
            RETURN
    
    .ASSUME . LE 1000,MESSAGE=<;SET area overflow>
    
            .DRBEG  EM
    EMINT:
            .DREND  EM
    
            .END
    Я не стал тут рисовать точку для SYSGEN, но замечу про нее - во-первых 54 можно сразу положить в R3 из DRSET, во-вторых MMGT$ проверять не надо ибо если усер переименовал EM.SYS в EMX.SYS или наоборот, в пору усомниться в его вменяемости. Для всех остальных разборок с системой места остается дохрена. Если бы оставалось мало, можно было бы элементарно перенести эти разборки в оверлей.

    ---------- Post added at 19:29 ---------- Previous post was at 19:15 ----------

    Хотя для SYSGEN там вроде и так оффсет клался в R3...
    Последний раз редактировалось form; 01.03.2012 в 16:55.
    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

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

    По умолчанию

    Я пофиксил в драйвере EM.SYS только те моменты, которые приводят к невозможности корректно выйти из прерывания. Поскольку аргументы FIS не используют методов адресации - похоже, что неправильного выполнения команд FIS на ДВК-1 вообще быть не должно.

    Проверять затирание исходных данных команд EIS крайне накладно из-за использования там методов адресации. При использовании SP в качестве регистра-приёмника в команде EIS - значение SP не изменяется.
    Вложения Вложения
    Последний раз редактировалось Patron; 01.03.2012 в 19:27.

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

    По умолчанию

    Выпущена новая версия драйвера EM.SYS ( v1.4 ) - более дружелюбная к пользователю.

    Родные версии EM.SYS при несовпадении параметров генерации вели себя так:

    Код:
    .SET EM INFORM
    ?EM-I-v1.0 by I.Nys, 116-20-42
    Options:  EIS FIS
     
    .SET EM ON
    ?KMON-F-Invalid command
     
    .SET EM SYSGEN
     
    .SET EM ON
    ?KMON-F-Invalid command
     
    .INS EM
     
    .SET EM ON
     
    .SET EM ON
    ?EM-I-Already running

    Новая версия ведёт себя так:
    Код:
    .SET EM INFORM
    EM v1.4 by I.NYS, MX
    Options: EIS FIS
     
    .SET EM ON
    ?EM-I-Conflicting SYSGEN options
    ?EM-I-Use: SET EM SYSGEN
     
    .SET EM SYSGEN
     
    .SET EM ON
     
    .SET EM ON
    ?EM-I-Already running..
    Вложения Вложения
    Последний раз редактировалось Patron; 04.03.2012 в 16:18.

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

    По умолчанию

    Как выяснилось - драйвер EM.SYS не обошли проблемы "последнего слова", которое затирается у драйвера при загрузке в "продвинутых" мониторах, если в исходнике не были учтены параметры генерации.

    В новой версии драйвера EM.SYS ( v1.4 ) эти проблемы решены.
    Вложения Вложения

  7. #1786
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Как выяснилось - драйвер EM.SYS не обошли проблемы "последнего слова", которое затирается у драйвера при загрузке в "продвинутых" мониторах, если в исходнике не были учтены параметры генерации.
    А зачем их не учитывать? Это фича самого старого 5.0 - возможность написать FORCE в DREND
    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. #1788
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А зачем их не учитывать? Это фича самого старого 5.0 - возможность написать FORCE в DREND
    У меня сложилось впечатление, что FORCE в DREND работает только у драйверов типа EM и SL.

    Если у драйвера есть секция загрузчика, то вызов DREND, осуществляемый в команде DRBOT, не имеет параметра FORCE.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    У меня сложилось впечатление, что FORCE в DREND работает только у драйверов типа EM и SL.

    Если у драйвера есть секция загрузчика, то вызов DREND, осуществляемый в команде DRBOT, не имеет параметра FORCE.
    Никто не мешает вызвать его самостоятельно перед DRBOT.
    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

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Никто не мешает вызвать его самостоятельно перед DRBOT.
    Как именно?
    Когда я просто вызвал .DrEnd перед .DrBot - MACRO выдал мне 27 ошибок.

Страница 179 из 453 ПерваяПервая ... 175176177178179180181182183 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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