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

User Tag List

Страница 131 из 454 ПерваяПервая ... 127128129130131132133134135 ... ПоследняяПоследняя
Показано с 1,301 по 1,310 из 4535

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

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Есть эмули, которые это покажут?
    Дык писал выше - E11.
    Собственно там в каталоге и лежит заточенное под E11.
    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. #1302
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,557
    Спасибо Благодарностей отдано 
    1,220
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Дык писал выше - E11.
    Собственно там в каталоге и лежит заточенное под E11.
    А, т.е. патченное, не оригинальное?

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Были векторные графические терминалы VT-11 и VS-60. Для их включения/выключения в RT-11 были команды GT ON/GT OFF.
    Но это всё-таки векторные терминалы, для растровых нужен прямой доступ в видеопамять.
    Был еще VT30 color graphics controller, но я про него ничего не знаю.
    В E11 тоже есть.
    А так - везде видел советское, не совместимое ни с ДВК ни с чем-либо DECовским ни с подобными же железяками в соседнем институте

    ---------- Post added at 01:27 ---------- Previous post was at 01:18 ----------

    The VT30 "Colour Mimic Diagram Display System" is a simple display-list-based raster graphics device, built by
    DEC CSS in Reading, UK. It is a Unibus device, mounted in a 5.25" high external box. It displays 8x8 characters
    from a software character generator on a 64x36 grid, yielding 512x288 pixels, displayed on an attached PAL monitor.

    ---------- Post added at 01:28 ---------- Previous post was at 01:27 ----------

    Это поди то самое, что Andrey_Ak с Э100-25 досталось
    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. #1304
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,557
    Спасибо Благодарностей отдано 
    1,220
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    При этом линкер прописывает параметры программы по адресам: 40 - стартовый адрес, 42 - начальное значение SP (начало программы), 50 - последний адрес программы.
    Ковырял одну ДВК'шную программу и нашел такой глюк. По адресу 50 записан, как я понимаю, адрес последнего слова программы. Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова за ним. Таким образом одно слово при копировании не дописалось. Интересно, как такое может быть? Плагин wcx этот адрес не трогает? Не пойму, или авторы налажали, или он просто так попортился. Программа в аттаче. Это драйвер КЦГД для ДВК. При запуске она сперва проверяет наличие регистра КГД 176640, если он отсутствует, то считает, что на компе нет КГД, а стало быть есть КЦГД, и копирует свое тело через ESC-X в память КЦГД. Но копируя, она использует адрес в ячейке 50, как адрес следующего слова за последним словом программы, и программа копируется в КЦГД без последнего RTS. Надеюсь, понятно обьяснил.
    Вложения Вложения

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова
    Бывает такая ошибка - сам делал иногда
    Или возможен вариант, что сама программа так сделана. К примеру:

    Код:
    START:  ...
            ...
            .BLKW
    
            .END    START
    в этом случае у нас .BLKW специально вставлен чтобы сдвинуть последний адрес.

    ---------- Post added at 11:37 ---------- Previous post was at 11:28 ----------

    Кстати навскидку не нашел описываемого (детально анализировать лень). Там берется значение из 50, от него отнимается число (возможно уже с учетом того что это последний адрес, а не следующий), а потом этот кусок кода "печатается" на экран (то есть видимо грузится в КЦГД).
    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

  6. #1306
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,557
    Спасибо Благодарностей отдано 
    1,220
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Кстати навскидку не нашел описываемого (детально анализировать лень). Там берется значение из 50, от него отнимается число (возможно уже с учетом того что это последний адрес, а не следующий), а потом этот кусок кода "печатается" на экран (то есть видимо грузится в КЦГД).
    Вот фрагмент. Извиняюсь, что частично в шестнадцатиричном виде.

    Код:
    0200  17F7 0004 0352  MOV   (#4),(2530)			;Сохранить вектор TRAP 4 в (2530)                
    0206  15DF 0216 0004  MOV   #$0216,(#4)                 ;Установить новый вектор TRAP 4
    020C  0A1F FDA0       CLR   (#176640)                   ;Читать регистр КГД 176640   
    0210  15C0 055A       MOV   #2532,R0                    ;Если прочелся, то печатаем
    0214  0122            BR    $025A			;сообщение об ошибке -->
                               
                               				;TRAP 4
    0216  17C3 0028       MOV   (#50),R3             	;R3 - адрес последнего слова программы 
    021A  E5C3 05BE       SUB   #2676,R3                    ;R3 = R3 - 2676 (отнимаем адрес начала программы,
    							;и получаем в R3 длину копируемой области)
    021E  10F7 0398       MOV   R3,(2672)                   ;Заносим длину в (2672)
    0222  15C1 0007       MOV   #7,R1                       ;Отправляем на терминал 7 байт параметров
    0226  15C2 05B7       MOV   #2667,R2  			;управляющей последовательности:
    022A  35DF 0040 FF74  BIT   #100,(#177564)              ;ESC, X, 0, <длина>, <адрес для копирования>
    0230  02FC            BNE   $022A                       ;  
    0232  8BDF FF74       TSTB  (#177564)                   ;    
    0236  80FD            BPL   $0232                     	;
    0238  949F FF76       MOVB  (R2)+,(#177566)             ;    
    023C  7E46            SOB   R1,$0232  			;
                          
    023E  15C2 05BE       MOV   #2676,R2                    ;Копируем R3 байт с адреса 2676  
    0242  8BDF FF74       TSTB  (#177564)                   ;в память КЦГД через терминал
    0246  80FD            BPL   $0242                       ;   
    0248  949F FF76       MOVB  (R2)+,(#177566)             ;    
    024C  7EC6            SOB   R3,$0242                    ; 
    
    
    Ввиду того, что длина последовательности для копирования вычисляется, как
    содержимое ячейки (50) минус адрес начала программы, будет скопировано
    все до адреса, указанного в (50), не включительно. Таким образом,
    последняя команда RTS не скопируется, т.к. (50) указывает не на слово за ней,
    а на нее.

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

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ковырял одну ДВК'шную программу и нашел такой глюк. По адресу 50 записан, как я понимаю, адрес последнего слова программы. Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова за ним. Таким образом одно слово при копировании не дописалось. Интересно, как такое может быть? Плагин wcx этот адрес не трогает? Не пойму, или авторы налажали, или он просто так попортился. Программа в аттаче. Это драйвер КЦГД для ДВК. При запуске она сперва проверяет наличие регистра КГД 176640, если он отсутствует, то считает, что на компе нет КГД, а стало быть есть КЦГД, и копирует свое тело через ESC-X в память КЦГД. Но копируя, она использует адрес в ячейке 50, как адрес следующего слова за последним словом программы, и программа копируется в КЦГД без последнего RTS. Надеюсь, понятно обьяснил.
    Я тоже глянул в DESS-е, согласен, авторы программы упустили этот момент. Но это легко поправимо - надо в нулевом блоке содержимое 50-й ячейки увеличить на 2. Собственно вся проблема и решается.

  9. #1308
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,557
    Спасибо Благодарностей отдано 
    1,220
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Я тоже глянул в DESS-е, согласен, авторы программы упустили этот момент. Но это легко поправимо - надо в нулевом блоке содержимое 50-й ячейки увеличить на 2. Собственно вся проблема и решается.
    Я так и сделал) Только другой вопрос, как же оно работало раньше)

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вот фрагмент. Извиняюсь, что частично в шестнадцатиричном виде.
    Не стоит в шестнадцатеричном - читать неудобно.
    Да и конструкции языка соблюдать следует - самому же потом трудно будет перестраиваться при програминге

    Цитата Сообщение от Titus Посмотреть сообщение
    Последняя команда RTS не скопируется, т.к. (50) указывает не на слово за ней,
    а на нее.
    Похоже на то.

    ---------- Post added at 18:55 ---------- Previous post was at 18:53 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Я так и сделал) Только другой вопрос, как же оно работало раньше)
    Ну может этот код никогда и не попадал в это место или попадал изредка и это относили на глючность чего-нибудь другого

    ---------- Post added at 19:01 ---------- Previous post was at 18:55 ----------

    Загрузка кстати неграмотно сделана. Ожидается запрещение прерываний вывода на экран и делается вывод, что как они запрещены - больше выводиться ничего не будет, что может быть неверно
    Последний раз редактировалось form; 12.11.2011 в 15:57.
    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. #1310
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я так и сделал) Только другой вопрос, как же оно работало раньше)
    Хороший вопрос. Надо дизассемблировать то, что грузится в КЦГД и посмотреть при каких условиях вызывается эта подпрограмма. Может ее вызов столь редкое явление, что разработчики и не заметили этого.

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

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

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

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

Ваши права

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