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

User Tag List

Страница 38 из 46 ПерваяПервая ... 343536373839404142 ... ПоследняяПоследняя
Показано с 371 по 380 из 452

Тема: Реплика КМД УКНЦ

  1. #371
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Тогда всё-таки, можно ссылочку?
    Описание самого конкретного устройства здесь. А так - вся тема "Эмулятор ДВК", ссылка на последнюю версию должна быть на первой странице и есть на последней в момент выкладывания, кажется, на 111-й или 110-й.
    Последний раз редактировалось AFZ; 22.04.2016 в 08:39.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  2. #372
    Banned
    Регистрация
    05.07.2010
    Адрес
    Москва
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Что действительно нужно, так это нормальный контроллер "всего" на шине ЦП. То есть склепать устройство, подобное ... на том же самом или подобном чипе (PSoC4 от cypress), но на шине ЦП. Засунуть его на место сетевого адаптера, сделать ему интерфейс "по мотивам" HD от Патрона, добавить загрузчик, якобы, из сети, а к нему цеплять что угодно, хоть микро-СД, хоть винчестер, хоть сеть УКНЦ (компортов у того ARM-чипа как бы не пара, а согласователь с сетью УКНЦ - мелочи), хоть вообще Ethernet, хоть все перечисленное вместе.
    Хорошо, теперь стало понятно что имеется ввиду. Но для начала нужно полное описание работы с СА, чего я никак пока не могу найти.

  3. #373
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Хорошо, теперь стало понятно что имеется ввиду. Но для начала нужно полное описание работы с СА, чего я никак пока не могу найти.
    Зачем? Со стороны УКНЦ там обычный 1801ВП1-065, а что там со стороны УКНЦ-шной локалки, пока неважно. Нам достаточно достать ту программулю, которую ПП пересылает в память ЦП для загрузки по сети, отдизасмить ее и разобраться, как с ее помощью загрузить в любое наперед заданное место несколько десятков байтов кода и передать туда управление.

    Подозреваю, всё что это давно сделано...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  4. #374
    Banned
    Регистрация
    05.07.2010
    Адрес
    Москва
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Нам достаточно достать ту программулю, которую ПП пересылает в память ЦП для загрузки по сети, отдизасмить ее и разобраться, как с ее помощью загрузить в любое наперед заданное место несколько десятков байтов кода и передать туда управление.

    Подозреваю, всё что это давно сделано...
    Ну да, дизассемблированное ПЗУ УК-НЦ давно есть. Я видел соответствующую часть кода, который производит загрузку из сети. Правда не понял кто конкретно это делает - ПП или ПЗУ.

  5. #375
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Правда не понял кто конкретно это делает - ПП или ПЗУ.
    СА сидит на магистрали ЦП. Поэтому для загрузки по сети ПП высылает через DMA в память ЦП программу-загрузчик и запускает ее. Кажется с адреса 10000, но точно не помню. Всё остальное делается этой программой. Вот ее и надо отдизасмить, если это еще не сделано.

    У меня в свое время, когда я интересовался этим, содержимого ПЗУ-шек не было, так я написал программулю, которая под RT-11 очищала всю свободную память и останавливалась (HALT). Затем я запускал загрузку из сети, потом останавливал ее кнопкой "Стоп" и пускал свою программулю дальше. Она находила начало и конец вновь появившегося кода, после чего я сохранил его командой SAVE и дизасмил полученный .SAV-файл. Увы, все это осталось на моем ДВК, винчестер которого покрылся бэдами. И уже почти ничего не помню...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #376
    Banned
    Регистрация
    05.07.2010
    Адрес
    Москва
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    СА сидит на магистрали ЦП. Поэтому для загрузки по сети ПП высылает через DMA в память ЦП программу-загрузчик и запускает ее. Кажется с адреса 10000, но точно не помню. Всё остальное делается этой программой. Вот ее и надо отдизасмить, если это еще не сделано.
    Да, примерно так все и выглядит:

    Код:
    ; Обработка пункта меню ЗАГРУЗКА [сеть]
    162440$:	JSR 	R4,163006$ 	; Вывод "* ЗАГРУЗКА ИЗ СЕТИ *"
    		 .WORD 	163573$ ; Адрес надписи
     		JSR 	R5,162522$ 	; Перекачка загрузчика и его запуск
     		.WORD 	164160$,210,0
    
    ; Обработка команды "Т" пультового монитора (тест локальной сети)
    162460$:	JSR 	R5,162522$ 	; Перекачка программы теста и ее запуск
    		.WORD 	164600$,360,0
    
    ; Обработка пункта меню ЗАГРУЗКА [стык С2]
    162472$:	JSR 	R5,162522$ 	; Перекачка загрузчика и его запуск
    		.WORD 	165540$,25,0
    
    ; Обработка пункта меню ЗАГРУЗКА [магнитофон]
    162504$:	JSR 	R5,162522$ 	; Перекачка загрузчика и его запуск
    		.WORD 	163774$,44,164130$,14,0
    
    ; Подпрограмма перекачки загрузчика из сист. ОЗУ и его запуск
    162522$:	MOV 	#1000,R0 	; R0 = адрес, куда перекачивается загрузчик
    162526$:	MOV 	(R5)+,R1 	; R1 = адрес загрузчика в сист. ОЗУ
    		BEQ 	162542$ 	; Конец перекачки
    		MOV 	(R5)+,R2 	; R2 = размер загрузчика в словах
    162534$:	MOV 	(R1)+,(R0)+ ; Цикл перекачки
    		SOB 	R2,162534$
    		BR 	162526$
    162542$:	CALL 	161236$ 	; Перевод ЦП в режим USER
    		MOV 	#200,R0 	; Копия ССП = 200 (прерывания запрещены)
    		$MTPS$
    		MOV 	#1000,R0 	; Копия СК = 1000 (адрес загрузчика)
    		$MTPC$
    		MOV 	#1000,SP
    		MOV 	R3,R0 		; R0 = номер устройства (диска или кассеты ПЗУ)
    		$RUN$ 				; Запуск загрузчика
    162572$:	RETURN

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

  8. #377
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Да, примерно так все и выглядит:
    Угу, осталось найти и разобрать сам загрузчик. Он, кстати, скорее всего, лежит в ПЗУ не по тому адресу, с которого выполняется, так, что его дизасм вряд ли будет корректным...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Угу, осталось найти и разобрать сам загрузчик. Он, кстати, скорее всего, лежит в ПЗУ не по тому адресу, с которого выполняется, так, что его дизасм вряд ли будет корректным...
    А чем он может быть некорректным? Старался как мог:
    Код:
    ; Загрузчик из сети164160$:MTPS    #340        ; Запретить прерывания
        MOVB    @#176561,R5    ; Выделение в R5 номера сетевой станции
        MOV    R5,R0
        BIC    #177760,R5
        ASR    R0
        BIC    #177717,R0
        BIS    R0,R5
        MOVB    R5,164556$    ; Сохранение номера сетевой станции
        MOVB    164572$,R0    ; R0 = 173(8)
        XOR    R5,R0        ; R0 = 173(8) XOR номер_сетевой_станции
        MOVB    R0,164572$
        MOV    #30,R0        ; R0 = 30 (адрес вектора команды EMT)
        MOV    #164500$-164160$+1000,(R0)+ ; Установка вектора прерывания EMT
        CLR    (R0)+        ; Установка ССП при вызове EMT
        MOV    #164512$-164160$+1000,(R0)+ ; Установка вектора прерывания TRAP
        CLR    (R0)+        ; Установка ССП при вызове TRAP
    164244$:MOV    #10000,SP    ; Установка указателя стека
        MOV    #164526$-164160$+1000,@#100 ; Устан. вект. прер. сет. таймера
        CLR    @#102
        MTPS    #0        ; Разрешить прерывания
        CLR    164534$        ; Очистка счетчика ожидания
    164272$:TRAP    0        ; Чтение пришедшего байта
        CMP    164534$,#5    ; Счетчик ожидания больше пяти
        BLO    164272$        ; Нет
    164304$:EMT    0        ; Посылка и чтение очередного байта
        CMPB    #376,R0        ; Пришедший байт равен 376(8)
        BNE    164304$        ; Нет
        MOV    #164554$-164160$+1000,R1 ; R1 = адрес блока передачи
    164320$:MOVB    (R1)+,R0    ; R0 = очередной байт из блока передачи
        CMPB    #376,R0        ; Он равен 376(8) ?
        BEQ    164334$        ; Да
        EMT    0        ; Посылка и чтение очередного байта
        BR    164320$
    164334$:EMT    0        ; Посылка и чтение очередного байта
        CMPB    #377,R0        ; Прочитанный байт равен 377(8) ?
        BNE    164334$        ; Нет
        EMT    0        ; Посылка и чтение очередного байта
        CMPB    R5,R0        ; Полученный байт равен номеру станции ?
        BNE    164334$        ; Нет
        MOV    #377,R4        ; R4 = 377(8) (контрольная сумма)
        XOR    R0,R4        ; R4 = 377(8) XOR номер_сетевой_станции
        MOV    #50000,R1    ; R1 = адрес расположения загрузчика
        EMT    0        ; Посылка и чтение очередного байта
        MOV    R0,R3        ; R3 = считанный байт
        XOR    R0,R4        ; Подсчет контрольной суммы
    164372$:EMT    0        ; Посылка и чтение очередного байта
        CMPB    #373,R0        ; Считанный байт равен 373(8) ?
        BLOS    164410$        ; Выше или равен 373(8)
        XOR    R0,R4        ; Подсчет контрольной суммы
        MOVB    R0,(R1)+    ; Передача принятого байта в память
        BR    164372$
    164410$:BNE    164426$        ; Принятый байт равен не равен 373(8)
        EMT    0        ; Посылка и чтение очередного байта
        COM    R0        ; Инверсия принятого байта
        XOR    R0,R4        ; Подсчет контрольной суммы
        MOVB    R0,(R1)+    ; Передача принятого байта в память
        COM    R0        ; Инверсия для передачи
        BR    164372$
    164426$:CMPB    #374,R0        ; Принятый байт равен 374(8)
        BNE    164244$        ; Нет
        EMT    0        ; Посылка и передача байта
        CMPB    R0,R4        ; Он равен контрольной сумме ?
        BNE    164244$        ; Нет
        EMT    0        ; Посылка и передача байта
        BISB    #10,R0        ; R0 = R0 OR 10(8)
        EMT    0        ; Посылка и передача байта
        CMPB    #377,R0        ; Принятый байт равен 377(8)
        BNE    164244$        ; Нет
        EMT    0        ; Посылка и передача байта
        MOV    #4,@#176560    ; Включение кольцевой сети
        MTPS    #340        ; Запретить прерывания
        JMP    @#50000        ; Переход на исполнение загрузчика
    ; Подпрограмма передачи байта в локальную сеть (исполнение команды EMT)
    164500$:TSTB    @#176564    ; Передатчик СА готов ?
        BPL    164500$        ; Нет
        MOVB    R0,@#176566    ; Передача байта в сеть
    ; Подпрограмма чтения байта, пришедшего по сети (исполнение команды TRAP)
    164512$:TSTB    @#176560    ; Приемник СА готов ?
        BPL    164512$        ; Нет
        MOVB    @#176562,R0    ; Прием байта из сети
        RTI
    ; Подпрограмма исполнения прерываний таймера
    164526$:CLR    @#176560    ; Включение режима загрузки
        INC    (PC)+        ; Инкремент счетчика ожидания
    164534$:.WORD    0
        CMP    164534$,#1000    ; Счетчик ожидания превысил лимит времени ?
        BHI    164550$        ; Да
        RTI
    164550$:JMP    164244$
    ; Блок передачи в сеть
    164554$:.BYTE    377,0,0,204,0,0,0,0,0,0,0,0,0,374,173,60,377,376,0,0

  10. #379
    Banned
    Регистрация
    05.07.2010
    Адрес
    Москва
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, вроде ничего некорректного нет. Вопрос только в том, что с этим делать чтобы с сетью работать? Например, есть у меня модуль HLK-RM04, который подключается через RS232. Как мне с ним обмен наладить? Ему вроде достаточно AT-команд, если я ничего не путаю.

  11. #380
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Да, вроде ничего некорректного нет. Вопрос только в том, что с этим делать чтобы с сетью работать?
    С сетью? А зачем? Сеть УКНЦ сама по себе довольно бесполезная вещь. Для замены дисковых устройств сетевыми она слишком тормозная. Была бы она, хотя бы, 1Мбит, было бы терпимо, а 56 Кбит - это даже не смешно. Для подключения во "взрослые" сети не годится сама УКНЦ - если и удастся затолкать TCP/IP в машинку без диспетчера памяти и без настоящей DEC'овской сетевухи, толку с него не будет никакого, ибо он один займет все ресурсы машинки, на прикладуху места просто не останется...

    А вот принять загрузчик, который загрузит систему с дополнительного дискового устройства на шине ЦП - это запросто.

    - - - Добавлено - - -

    Да, приведенный дизасм я толком не разглядывал - я сейчас глубоко закопался в ядро ДИАМСа и на другое отвлекаться не хочу...
    Последний раз редактировалось AFZ; 27.04.2016 в 08:48.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

Страница 38 из 46 ПерваяПервая ... 343536373839404142 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Игры на УКНЦ
    от Titus в разделе ДВК, УКНЦ
    Ответов: 125
    Последнее: 29.12.2020, 23:12
  2. Продам ДВК/УКНЦ.
    от falanger в разделе Барахолка (архив)
    Ответов: 6
    Последнее: 27.04.2009, 01:40
  3. Продаю УКНЦ
    от Gryphon в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 01.04.2009, 10:22
  4. Вопрос по БМК для УКНЦ
    от Alex_kapfa в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 19.03.2009, 07:44
  5. Куплю КМД УКНЦ.
    от falanger в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 19.11.2008, 08:24

Ваши права

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