Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Эмулятор терминала типа VT52 (http://zx-pk.ru/showthread.php?t=20092)

form 15th March 2013 21:15

Quote:

Originally Posted by Patron (Post 584137)
Так как секунда роли не играет - можно сделать параметр ReConnect с диапазоном 0..120, причём 0 будет отключать автоматический реконнект, а 1..120 - включать автоматический реконнект с задержкой 1..120 сек.

Да, самый оптимальный вариант.

Patron 20th March 2013 00:46

Обновилась текущая сборка эмулятора терминала типа 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.

form 20th March 2013 00:56

Quote:

Originally Posted by Patron (Post 585117)
Это позволяет использовать один и тот же аппаратный загрузчик для загрузки с HX и TU58.

Я бы не сказал, что это работает с родным загрузчиком KDJ11-B :)
Хотя на KDJ11-B никто не мешает просто свой загрузчик добавить.

---------- Post added at 02:56 ---------- Previous post was at 02:56 ----------

Впрочем не работает скорее всего из-за кривого порта...

Patron 20th March 2013 01:02

Quote:

Originally Posted by form (Post 585119)
Я бы не сказал, что это работает с родным загрузчиком KDJ11-B

Теперь, получив "\04\010\00" ( брейк не обязателен, поэтому будет работать даже через IP ) - сервер HX вернёт первые 512 байтов нулевого привода.

Если должно работать, но не работает - можно повесить на входной порт консоль и посмотреть, какие байты идут из порта в сервер.

form 20th March 2013 01:07

Quote:

Originally Posted by Patron (Post 585122)
Теперь, получив "\04\010\00" ( брейк не обязателен, поэтому будет работать даже через IP ) - сервер HX вернёт первые 512 байтов нулевого привода.

Если должно работать, но не работает - можно повесить на входной порт консоль и посмотреть, какие байты идут из порта в сервер.

Как правильно повесить чтобы видно было?
Как минимум на кривом порте в сторону сервера летит "<BREAK>Trying DD0" :)

Patron 20th March 2013 01:16

Quote:

Originally Posted by form (Post 585124)
Как правильно повесить чтобы видно было?

Code:

[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

Так будет ещё и писать лог в файл "Input_Log.log"

form 20th March 2013 02:20

Quote:

Originally Posted by Patron (Post 585128)
Так будет ещё и писать лог в файл "Input_Log.log"

Сейчас RSTS/E доставится - посмотрим.

---------- Post added at 04:17 ---------- Previous post was at 03:31 ----------

Code:

@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).

Patron 20th March 2013 13:37

1 Attachment(s)
Quote:

Originally Posted by form (Post 585133)
Походу загрузчик сначала делает чистую инициализацию (два INIT [004]), на это TU58 должен ответить "CONTINUE" (020).

Да, такой вариант не подходит.

Вот загрузчик, годящийся и для TU58, и для HX ( он же находится в файле TU58.SAV ):

Code:

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

Адреса регистров последовательного порта, используемого для загрузки - находятся в ячейках 01002 ( TKS: 176570 ) и 01006 ( TPS: 176574 ).

...

form 20th March 2013 14:24

Это классический загрузчик из документации. Но его надо вручную набирать (ну или посылать в память терминалом). В прошивках такого не бывает.

form 24th March 2013 02:55

1 Attachment(s)
Для общего развития наваял загрузчик с HX для KDJ11-B. Загрузчик совсем простой: не проверяет что считал, не отслеживает возможное отсутствие готовности передатчика. Определяет наличие HX и ругается если нету. В идеале надо ROM просить написать "starting system" сразу после определения наличия HX, но уже лень переделывать :)

Code:

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:

Code:

        .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

PS. DAY в системе 5.4G которая идет в комплекте - стабильно "?MON-F-Trap to 4 001264"


All times are GMT +4. The time now is 02:42.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.