Да, самый оптимальный вариант.
Вид для печати
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_19.03.13_23-13.
Изменения:
1. У объекта Terminal_IP_Adapter добавлен параметр ReConnect, задаваемый в секции объекта в файле конфигурации и задающий задержку в секундах перед повторным соединением. Допустимые значения 0..120. Значение по умолчанию 1. Значение 0 - запрещает повторное соединение.
2. В протокол HX добавлена поддержка команды протокола TU58 "Передать загрузчик для привода 0" ( "\04\010\00" ). После получения этой команды сервер HX отправит в порт первые 512 байтов c нулевого привода. Это позволяет использовать один и тот же аппаратный загрузчик для загрузки с HX и TU58.
Так будет ещё и писать лог в файл "Input_Log.log"Код:[objects]
Input_Log = Ядро:Console
[links]
ComPort > Input_Log
[Input_Log.ini]
TabTitle =
InitialStateOf[StatusBar] = 0
SaveChangesFor[StatusBar] = 0
InitialStateOf[ControlBar] = 0
SaveChangesFor[ControlBar] = 0
InitialStateOf[Log]=1
SaveChangesFor[Log]=0
DumpMode=1
Сейчас RSTS/E доставится - посмотрим.
---------- Post added at 04:17 ---------- Previous post was at 03:31 ----------
Код:@173000G«000»«000»«000»«000»«377»
Testing in progress - Please wait
Memory Size is 4088 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9
Message 04 Entering Dialog mode
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key: B DD/A
CSR address = 177560
Trying DD0«000»«1000»ing DD0«1000»«000»«004»«004»
Message 15
Non existent drive
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
---------- Post added at 04:20 ---------- Previous post was at 04:17 ----------
Походу загрузчик сначала делает чистую инициализацию (два INIT [004]), на это TU58 должен ответить "CONTINUE" (020).
Да, такой вариант не подходит.
Вот загрузчик, годящийся и для TU58, и для HX ( он же находится в файле TU58.SAV ):
Адреса регистров последовательного порта, используемого для загрузки - находятся в ячейках 01002 ( TKS: 176570 ) и 01006 ( TPS: 176574 ).Код:START: MOV #176570,R1
MOV #176574,R2
MOV R1,R0
INC @R2
10$: TSTB @R2
BPL .-2
ASL R0
BNE 20$
CLR @R2
MOV #4,R0
TST 2(R1)
20$: BIC #20,R0
MOV R0,2(R2)
BNE 10$
CLR R3
30$: TSTB @R1
BPL .-2
MOVB 2(R1),(R3)+
CMP #1000,R3
BHI 30$
CLR PC
...
Это классический загрузчик из документации. Но его надо вручную набирать (ну или посылать в память терминалом). В прошивках такого не бывает.
Для общего развития наваял загрузчик с HX для KDJ11-B. Загрузчик совсем простой: не проверяет что считал, не отслеживает возможное отсутствие готовности передатчика. Определяет наличие HX и ругается если нету. В идеале надо ROM просить написать "starting system" сразу после определения наличия HX, но уже лень переделывать :)
Код:Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key: L
Device Unit
name numbers Source Device type
DU 0-255 CPU ROM RDnn, RXnn, RC25, RAnn
DL 0-3 CPU ROM RL01, RL02
DX 0-1 CPU ROM RX01
DY 0-1 CPU ROM RX02
DD 0-1 CPU ROM TU58
DK 0-7 CPU ROM RK05
MU 0-255 CPU ROM TK50, TU81
MS 0-3 CPU ROM TK25, TS05
XH 0-1 CPU ROM DECNET ETHERNET
NU 0-15 CPU ROM DECNET DUV11
NE 0-15 CPU ROM DECNET DLV11-E
NF 0-15 CPU ROM DECNET DLV11-F
HX 0 EEPROM TTY MUX
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key: B HX
Trying HX0
Message 15
Non existent drive
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
PS. DAY в системе 5.4G которая идет в комплекте - стабильно "?MON-F-Trap to 4 001264"Код:.TITLE HXBOOT
CSR == 177560 ;CSR ПО УМОЛЧАНИЮ
;DEC РЕКОМЕНДУЕТ ИСПОЛЬЗОВАТЬ НАЧАЛЬНЫЙ АДРЕС 40000.
.ASECT
.=40000
;ТОЧКА ВХОДА В ЗАГРУЗЧИК. В ЭТОМ МЕСТЕ:
; - MMU ВЫКЛЮЧЕН
; - 22-БИТНАЯ АДРЕСАЦИЯ ВЫКЛЮЧЕНА
; - ВЫБРАН ОСНОВНОЙ НАБОР РЕГИСТРОВ
; - R0 СОДЕРЖИТ UNIT (ВСЕГДА 0)
; - R1 СОДЕРЖИТ 0 ИЛИ УКАЗАННЫЙ CSR
START: TST R1 ;CSR УКАЗАН?
BNE 10$ ;ДА
MOV #CSR,R1 ;НЕТ, ИСПОЛЬЗУЕМ ОБЫЧНЫЙ
10$: MOV #IDENT,R5 ;ПОСЫЛАЕМ КОМАНДУ ПРОВЕРКИ
CALL SEND ;
MOV #2,R3 ;ПРИНИМАЕМ 2 БАЙТА
CALL RECV ;
BCS 30$ ;CS - НЕТ УСТРОЙСТВА
CMP #375,-(R4) ;HX ДОЛЖЕН ВЕРНУТЬ 375
BNE 40$ ;КЮ!
MOV #BOOT,R5 ;ПОСЫЛАЕМ КОМАНДУ ЗАГРУЗКИ
CALL SEND ;
MOV #512.,R3 ;ПРИНИМАЕМ ЗАГРУЗЧИК
CALL RECV ;
BCS 40$ ;КЮ!
MOV #1,R5 ;ЗАПРАШИВАЕМ "STARTING SYSTEM"
;В ДОКУМЕНТАЦИИ DEC, ПОПАВШЕЙ ПОД РУКУ, НИЧЕГО НЕ ГОВОРИТСЯ ПРО
;СТЕК. ОДНАКО ЕСЛИ ЕГО ОСТАВИТЬ БЕЗ ИЗМЕНЕНИЯ ПРИ ЗАПРОСЕ СООБЩЕНИЯ,
;АДРЕС ВОЗВРАТА ЗАТРЕТСЯ И БУДЕТ ОШИБКА "E 75". ДЛЯ ЗАПРОСА СООБЩЕНИЙ
;ОБ ОШИБКАХ УСТАНАВЛИВАТЬ СТЕК НЕ ТРЕБУЕТСЯ.
MOV #START,SP ;УСТАНАВЛИВАЕМ СТЕК
20$: CALL @#165762 ;ЗАПРАШИВАЕМ СООБЩЕНИЕ
CLR PC ;ЗАПУСКАЕМ СИСТЕМУ
30$: MOV #ERASE,R5 ;СТИРАЕМ МУСОР ОТ ЗАПРОСА HX
CALL SEND ;
MOV #275,R5 ;ОШИБКА - NONEXISTENT DRIVE
BR 20$ ;ВОЗВРАТ В ROM
40$: MOV #301,R5 ;ОШИБКА - DRIVE ERROR
BR 20$ ;ВОЗВРАТ В ROM
RECV:: MOV #-1,R2 ;УСТАНАВЛИВАЕМ ЧИСЛО ПОПЫТОК
10$: TSTB @R1 ;ЖДЕМ ГОТОВНОСТИ
BPL 20$ ;
MOVB 2(R1),(R4)+ ;ПОЛУЧАЕМ БАЙТ
SOB R3,RECV ;ЦИКЛИМСЯ ДО КОНЦА
RETURN ;ВОЗВРАТ (C СБРОШЕН - TSTB)
20$: SOB R2,10$ ;ПОВТОРЯЕМ ПОПЫТКУ
SEC ;УСТАНАВЛИВАЕМ C
RETURN ;ВОЗВРАТ
SEND:: MOVB (R5)+,R4 ;ПОЛУЧАЕМ КОЛИЧЕСТВО БАЙТОВ
10$: TSTB 4(R1) ;ЖДЕМ ГОТОВНОСТИ
BPL 10$ ;
MOVB (R5)+,6(R1) ;ПОСЫЛАЕМ БАЙТ
SOB R4,10$ ;ЦИКЛИМСЯ ДО КОНЦА
RETURN ;ВОЗВРАТ
IDENT: .BYTE 4,1,376,0,0
BOOT: .BYTE 3,4,10,0
ERASE: .BYTE 3,10,40,10
.END