Был еще 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
Ковырял одну ДВК'шную программу и нашел такой глюк. По адресу 50 записан, как я понимаю, адрес последнего слова программы. Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова за ним. Таким образом одно слово при копировании не дописалось. Интересно, как такое может быть? Плагин wcx этот адрес не трогает? Не пойму, или авторы налажали, или он просто так попортился. Программа в аттаче. Это драйвер КЦГД для ДВК. При запуске она сперва проверяет наличие регистра КГД 176640, если он отсутствует, то считает, что на компе нет КГД, а стало быть есть КЦГД, и копирует свое тело через ESC-X в память КЦГД. Но копируя, она использует адрес в ячейке 50, как адрес следующего слова за последним словом программы, и программа копируется в КЦГД без последнего RTS. Надеюсь, понятно обьяснил.
Бывает такая ошибка - сам делал иногда
Или возможен вариант, что сама программа так сделана. К примеру:
в этом случае у нас .BLKW специально вставлен чтобы сдвинуть последний адрес.Код:START: ... ... .BLKW .END START
---------- 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
Вот фрагмент. Извиняюсь, что частично в шестнадцатиричном виде.
Код: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) указывает не на слово за ней, а на нее.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не стоит в шестнадцатеричном - читать неудобно.
Да и конструкции языка соблюдать следует - самому же потом трудно будет перестраиваться при програминге
Похоже на то.
---------- Post added at 18:55 ---------- Previous post was at 18:53 ----------
Ну может этот код никогда и не попадал в это место или попадал изредка и это относили на глючность чего-нибудь другого
---------- 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
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)