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

User Tag List

Страница 178 из 454 ПерваяПервая ... 174175176177178179180181182 ... ПоследняяПоследняя
Показано с 1,771 по 1,780 из 4535

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

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А как?
    Очень просто: обнаружив такую ситуацию просто ничего не делаем и возвращаемся туда откуда пришли. При этом RESORC покажет что 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

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

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Очень просто: обнаружив такую ситуацию просто ничего не делаем и возвращаемся туда откуда пришли. При этом RESORC покажет что FIS есть, а теоретическая программа которая ждет реального результата в такой ситуации так и так получит кривой.
    Нет - в такой ситуации EM.SYS будет передавать управление на системный обработчик Trap to 010 - это более совместимо.

    ...

    Компилируя вчера EM.SYS v1.0 я столкнулся с любопытной деталью - при компиляции и линковке программами от RT-11 v05.04 - код в нулевом блоке драйвера оказался на одно слово ближе к началу, нежели при сборке в RT-11 v05.07

    Т.е. никакие .ASECT не "спасли" - код лёг в разные ячейки.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Нет - в такой ситуации EM.SYS будет передавать управление на системный обработчик Trap to 010 - это более совместимо.

    ...

    Компилируя вчера EM.SYS v1.0 я столкнулся с любопытной деталью - при компиляции и линковке программами от RT-11 v05.04 - код в нулевом блоке драйвера оказался на одно слово ближе к началу, нежели при сборке в RT-11 v05.07

    Т.е. никакие .ASECT не "спасли" - код лёг в разные ячейки.
    О совместимости тут даже речи не идет. Если прога начнет работать с FIS, обнаружив, что он есть и трапнется на операции которая в теории тоже есть, поверь, совместимее оно не будет

    Втыкание кода .ASECTами в "неиспользуемые" ячейки в принципе криво. Из-за таких извратов драйвер (даже с точки зрения RT-11 V5.02) оказывается часто с вложенным незапланированным функционалом или как к примеру родной WD с его ".=.-2" после DRBEG, оказывается эффективно превращен в драйвер от RT-11 V4.

    ---------- Post added at 16:20 ---------- Previous post was at 16:16 ----------

    Если уж тут говорить о совместимости - правильнее сделать FP exception

    ---------- Post added at 16:25 ---------- Previous post was at 16:20 ----------

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Втыкание кода .ASECTами в "неиспользуемые" ячейки в принципе криво. Из-за таких извратов драйвер (даже с точки зрения RT-11 V5.02) оказывается часто с вложенным незапланированным функционалом или как к примеру родной WD с его ".=.-2" после DRBEG, оказывается эффективно превращен в драйвер от RT-11 V4.
    Поскольку сейчас я переделываю драйвер EM.SYS, то вынужден решать как раз эту проблему. При сборке в RT-11 v05.07 - неудачно расположенный код оказывается заменён на разную служебную информацию.

    Я правильно понимаю, что наиболее совместимо линковать драйвер, как обычный файл .SAV ?

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Я правильно понимаю, что наиболее совместимо линковать драйвер, как обычный файл .SAV ?
    Для драйвера нужно /NOBITMAP делать.

    ---------- Post added at 16:36 ---------- Previous post was at 16:33 ----------

    А вообще, если взялся переделывать драйвер, лучше выкинуть уродсткое .ASECTство и сделать нормальные оверлеи SETовские если вдруг по какой-то причине что-то не влезает. Хотя там вроде не так много всего чтобы не влезало.

    ---------- Post added at 16:56 ---------- Previous post was at 16:36 ----------

    Код:
    	.ASECT
    	.=200
    	NOP
    	RETURN
    Нефиг вообще лезть в 200/202 если не нужна прога инсталяции.

    Код

    Код:
    FINDRV:
    	MOV	PC, R0
    	ADD	#DEVNAM-., R0
    	MOV	PC, -(SP)
    	ADD	#AREA-., (SP)
    Упрощаем до...

    Код:
    	JSR	R1,10$
    	.RAD50	/EM/
    	.BLKW	4
    
    10$:	MOV	R1,R0
    	TST	(R1)+
    	MOV	R1,@SP


    ---------- Post added at 17:04 ---------- Previous post was at 16:56 ----------



    Неясно зачем стек попается - DSTAT при ошибке его также сдвинет.

    Код:
    O.GOOD:	CMP	(PC)+,(PC)+
    
    OO.BAD:	TST	(SP)+
    O.BAD:	SEC
    	RETURN


    ---------- Post added at 17:08 ---------- Previous post was at 17:04 ----------

    Уже поправил - я правильно прочитал - там криво
    Последний раз редактировалось form; 01.03.2012 в 14:07.
    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. #1776
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Неясно зачем стек попается - DSTAT при ошибке его также сдвинет.

    Код:
    O.GOOD:	CMP	(PC)+,(PC)+
    
    OO.BAD:	TST	(SP)+
    O.BAD:	SEC
    	RETURN
    Это обычная дикая ошибка из тех, что появляются, когда код пишут несколько человек сразу.

    Вот что отлично работало на этом месте:
    Код:
    	EMT	342		; PIC .DSTATUS
    	BCS	O.BAD
    	MOV	AREA+4,R1
    O.GOOD:
    	TST	(PC)+
    O.BAD:	SEC
    	RETURN

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

    По умолчанию

    Видимо автор исходил из того, что если система не суппортит .DSTAT - выбрать аргумент. Но во-первых его суппортят все RT-11 как минимум начиная с версии 3, во-вторых при неподдерживаемом вызове RT-11 не выставляет C.

    ---------- Post added at 17:10 ---------- Previous post was at 17:09 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Вот что отлично работало на этом месте:
    Код:
    	EMT	342		; PIC .DSTATUS
    	BCS	O.BAD
    	MOV	AREA+4,R1
    O.GOOD:
    	TST	(PC)+
    O.BAD:	SEC
    	RETURN
    Да, это правильный код.

    ---------- Post added at 17:12 ---------- Previous post was at 17:10 ----------

    Еще упростить как я нарисовал, код подсократится на слова 3-4

    Кстати даже как написано топорно можно было сократить на слово - незачем несколько раз подряд MOV PC,Rx делать
    Хотя нет - тут не поможет - мало раз делается
    Последний раз редактировалось form; 01.03.2012 в 14:17.
    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. #1778
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Да, это правильный код.
    Это фрагмент из первой версии драйвера. Потом авторы совместными усилиями всё запутали.

    ---------- Post added at 13:21 ---------- Previous post was at 13:13 ----------

    Похоже, что вот этот код неправильный:
    Код:
    O.ON:
    	CALL	FINDRV
    	TST	R1			; Если драйвер уже загружен,
    	BNE	L1$			; напечатать об этом
    	MOV	@#SYSPTR, R0
    	BIS	#EIS$,CONFIG(R0)	; включить EIS
      .IF DF FPP
    	BIT	#FPP$,CONFG1(R0)	; Ошибка, если нет FPP.
    	BNE	2$
    	JSR	R0,3$
    	.ASCIZ	/?EM-F-Use FPP/
    	.EVEN
    3$:	.PRINT
    	MOV	(SP)+,R0;
    	BR	O.BAD
    При отсутствии FPP - BIS #EIS$,CONFIG не отменяется перед выходом.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Это фрагмент из первой версии драйвера. Потом авторы совместными усилиями всё запутали.

    ---------- Post added at 13:21 ---------- Previous post was at 13:13 ----------

    Похоже, что вот этот код неправильный:
    Код:
    O.ON:
    	CALL	FINDRV
    	TST	R1			; Если драйвер уже загружен,
    	BNE	L1$			; напечатать об этом
    	MOV	@#SYSPTR, R0
    	BIS	#EIS$,CONFIG(R0)	; включить EIS
      .IF DF FPP
    	BIT	#FPP$,CONFG1(R0)	; Ошибка, если нет FPP.
    	BNE	2$
    	JSR	R0,3$
    	.ASCIZ	/?EM-F-Use FPP/
    	.EVEN
    3$:	.PRINT
    	MOV	(SP)+,R0;
    	BR	O.BAD
    При отсутствии FPP - BIS #EIS$,CONFIG не отменяется перед выходом.
    Я бы сказал, что устанавливать его в принципе надо перед тем как уже запустился в работу. @#SYSPTR эффективно можно заменить на @R3 в данном случае. Еще ошибка: драйвер исходит из того, что EIS в принципе не поддерживается, а если он таки поддерживается и драйвер по сути эмулировал FIS, то при выключении его конфиг покажет что поддержки нет.

    ---------- Post added at 17:29 ---------- Previous post was at 17:27 ----------

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    драйвер исходит из того, что EIS в принципе не поддерживается, а если он таки поддерживается и драйвер по сути эмулировал FIS, то при выключении его конфиг покажет что поддержки нет.
    При выключении драйвера даётся команда MUL R0,R0 и в отбработчике Trap to 010 сбрасывается системный бит поддержки EIS.

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

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

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

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

Ваши права

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