Кстати, на счет управляющих кодов. В описании КЦГД сказано, что ESC X X - это загрузка в память КЦГД программы. Тогда как на практике оказалось, что эта последовательность не из двух X, а только из одного, т.е. ESC X.
Вид для печати
Кстати, на счет управляющих кодов. В описании КЦГД сказано, что ESC X X - это загрузка в память КЦГД программы. Тогда как на практике оказалось, что эта последовательность не из двух X, а только из одного, т.е. ESC X.
На практике после <ESC>X следует еще один символ, который пропускается. Ведь выкладывал дизассемблированный вариант 181-ой. Вот кусок кода:
Код:; П/п исполнения Esc-последовательности ESC X (загрузка ПО)
100716$:MTPS #340 ; Запретить прерывания
MOV #177400,4444 ; При приеме символа оставлять 8 бит
CALL 102270$ ; Пропустить дополнительный "X"
MOV #100764$,-(SP) ; Адрес возврата на закачку в ОЗУ
CALL @PC ; Принять слово (объем данных) в R1
MOV R1,R2 ; R2 = объем данных
CALL 102270$ ; Принять мл.часть слова (объем/адрес)
MOV R0,R1 ; R1 = мл.часть слова
CALL 102270$ ; Принять ст.часть слова (объем/адрес)
SWAB R0 ; Перенести в старший байт
BIS R0,R1 ; R1 = слово (объем/данные)
RETURN
; П/п приема и перекачки кода в ОЗУ при исполнении ESC X
100764$:MOV R1,R3 ; R3 = адрес запуска
100766$:CALL 102270$ ; Принять очередной символ в R0
MOVB R0,(R1)+ ; Поместить байт в ОЗУ
SOB R2,100766$ ; Цикл по объему данных
JMP @R3 ; Переход на п/п пользователя
Мне тоже интересно. По идее надо проверить что второй X является именно иксом, что не ошиблись последовательностью и хотим загрузить программу в КЦГД. А так случайно подали <ESC>X, далее пошла всякая белиберда - и в итоге запортили ОЗУ в КЦГД, а если загрузка пошла на место ПЗУ, то вообще TRAP4.
A КЦГД у кого-нить есть? Фотки посмотреть бы в работе.
У Sergei Frolov есть в ДВК-3М и Квант-4.
http://www.leningrad.su/museum/show_big.php?n=1007
http://www.leningrad.su/museum/show_big.php?n=1010