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

User Tag List

Страница 132 из 148 ПерваяПервая ... 128129130131132133134135136 ... ПоследняяПоследняя
Показано с 1,311 по 1,320 из 1477

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #1311
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Поэтому я предпочел быть ближе к вероятному оригинальному коду. Мы же читаем программы сверху вниз, и программный счетчик для следующего шага обычно увеличивается, а не уменьшается. Код то горизонтальный, но мелкие кусочки последовательностей есть, и если смотреть в инверсном виде, то там будет именно uPC++, а не uPC--
    На самом деле я так и анализирую в инверсном виде, т.к. сразу увиделось что это ближе к первоисточнику)

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

    Цитата Сообщение от Ynicky Посмотреть сообщение
    Не знаю что за сигналы I0..I15, поэтому добавил следующие:
    На досуге, если будет не сложно, сделай команды: ADD R0,R1; BCC куда-нибудь

  2. #1312
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    386
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    162 сообщений
    Mentioned
    34 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    На досуге, если будет не сложно, сделай команды: ADD R0,R1; BCC куда-нибудь
    https://cloud.mail.ru/public/3nLG/3FdtCPZJH

  3. Этот пользователь поблагодарил Ynicky за это полезное сообщение:

    Titus (28.10.2020)

  4. #1313
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Ynicky Посмотреть сообщение
    https://cloud.mail.ru/public/3nLG/3FdtCPZJH
    Все замечательно, спасибо!
    Нашел у себя одну ошибочку оптимизации в таблице преддекодера.

  5. #1314
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Ура, нашел еще одну избыточность в процессоре)


  6. #1315
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Описание работы АЛУ 1801ВМ2:

    ALU производит операции над операндами, получаемых с двух внутренних шин X и Y. Операнд приемник (dd) выставляется на шину X, операнд источник (ss) на шину Y. Также на шину Y может выставляться регистр-константа или регистр-переменная для однооперандных команд.

    ALU состоит из нескольких ступеней:

    1. Входная ступень, здесь возможно инвертирование операндов X или Y, а также обнуление одного из операндов.
    2. Вычисление промежуточных логических функций OR, AND, а также их комбинаций - XOR и CLR (обнуление результата).
    3. Опциональная ступень ускоренного вычисления переносов для функции сложения.
    4. Сложение по модулю два (XOR) результата ступеней 2 и 3.
    5. Опциональный сдвиг результата вправо или влево с опциональным использованием флага переноса.


    Кодирование операций ALU:
    Код:
    Однооперандные операции (PL13=0):
    
    PL17 PL14    OPX  OPY
     0    0	      0    Y 	
     0    1      /X    0	COM
     1    0	      0   /Y
     1    1	      X    0	ROL, ROR, ASL, ASR
      
    Двухоперандные операции (PL13=1):
    
    PL17 PL14    OPX  OPY  ALU_G  ALU_CIN
     0    0	      X    Y 	 0	 0	BIS, BIT, CLR, XOR, TST 
     0    1      /X    Y	 1	 1	NEG
     1    0	      X   /Y	 1	 1	SUB, DEC, SBC, BIC
     1    1	      X    Y     1	 0	ADD, INC, ADC
    
    ALU_G - сумматор
    ALU_CIN - входящий перенос для сумматора
    
    Логические функции: 
     
    PL16 PL15  
      0   0	    Функция XOR (является составной частью сложения)
      0   1	    Функция AND
      1   0     Функция OR
      1   1     Функция CLR (не используется, результат равен 0)
    
    Сдвиг результата: 
     
    PL20 PL19
     0    0	    Нет сдвига   (NSHIFT)
     0    1     Сдвиг влево  (LSHIFT)
     1    0     Сдвиг вправо (RSHIFT)
     1    1	    Запрещенная комбинация
      
    PL15 - Блокирует линию OR, а также блокирует сумматор (ALU_G и ALU_CIN)
    PL16 - Блокирует линию AND
    PL18 - Разрешает флаг преноса для сдвигов
    
    Если PL17=0, PL14=0 и PL13=0, то расширение знака блокируется (SXT_Y0 = 0)
    Все варианты операций с ALU:
    Код:
     	
     PL17  PL16  PL15  PL14  PL13
      0     1     0     0     1	BIS: AF = X | Y
      0     0     1     0     1     BIT: AF = X & Y
      0     0     1     0     1     CLR: AF = X & Y = X & 0 = 0 (Y=0)
      1     0     1     0     1     BIC: AF = X & ~Y
      0     0     0     0     1  	XOR: AF = (X & Y) | ~(X | Y) = X ^ Y
      0     0     0     0     1  	TST: AF = (X & Y) | ~(X | Y) = X ^ Y = X ^ 0 = X (Y=0)
      1     0     0     1     1     ADD: AF = X + Y
      1     0     0     1     1     INC: AF = X + Y = X + 1 (Y=1)
      1     0     0     1     1     ADC: AF = X + Y = X + C (Y=C)
      1     0     0     0     1     SUB: AF = X + ~Y + 1 = X - Y
      1     0     0     0     1     DEC: AF = X + ~Y + 1 = X - Y = X - 1 (Y=1)
      1     0     0     0     1     SBC: AF = X + ~Y + 1 = X - Y = X - C (Y=C)
      0     0     0     1     1     NEG: AF = ~X + Y + 1 = ~X + 0 + 1 = ~X + 1 (Y=0)
     
      0     0     0     1     0	COM: AF = ~X ^ 0 = ~X (Y=C)
      1     0     0     1     0     Shift: AF = X ^ 0 = X
    Полная маска команд, получаемая от PLM:
    Код:
     3222222222211111111110000000000
     0987654321098765432109876543210	Номер линии PL00-30
      w  PPIIIISSCAAAAAyyyYYxxxXW B		Назначение линии
      __ ________				Инверсия линии   	
        	
     .....1...........1.............	XOR
     .....1........1..1.............	BIS 
     .....1.......1.1.1.............	BIC 
     ....11.......1...1.............	SUB 
     ....11.......1..11.............	ADD 
     .1..11..........11.........1...	CMP 
     .1...1.........1.1.........1...	BIT
         	
     ....11.........1.1..1.1........	CLR	(Y=0)				    
     .....1.......1...1.1..1........	DEC	(Y=1) (ALT_CNST=0)
     .....1.......1..11.1..1........	INC	(Y=1) (ALT_CNST=0)
     ....11..........11..1.1........	NEG	(Y=0)
     ....11.......1..11.1.11........	ADC	(Y=PSW0) (Бит C)
     ....11.......1...1.1.11........	SBC	(Y=PSW0) (Бит C)
     .1..11...........1..1.1....1...	TST	(Y=0)
     ....11..........1..1.11........	COM	(Y=PSW0) (Бит C)
     ....11.....1.1..1..............	ASL	(LSHIFT)
     ....11.....111..1..............	ROL	(LSHIFT) (CARRY)
     ....11....1..1..1..............	ASR	(RSHIFT)
     ....11....1.11..1..............	ROR	(RSHIFT) (CARRY)
    Немного замечаний:
    1. Не смотря на то, что ALU может опционально обнулять один из операндов, такие инструкции, как CLR, NEG и TST эту возможность не используют, а используют в качестве операнда Y - регистр констант, равный нулю.
    2. Такие инструкции, как CMP, BIT и TST используют блокировку обратной записи результата в операнд-приемник (PL3=1 и PL29=1).
    3. Не все операции выглядят рациональными. Например COM использует в качестве операнда Y регистр констант равный флагу C (Y=C), но в самом ALU операнд Y обнуляется.
    Последний раз редактировалось Titus; 29.10.2020 в 17:42.

  7. #1316
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию 1801VM2-Optimized [ALU & EALU] - rev 43

    Заодно подоспела вылизанная логическая схема ALU и EALU:

    1801VM2-Optimized [ALU & EALU] - rev 43.pdf

  8. Эти 3 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K (30.10.2020), hobot (29.10.2020), Ynicky (02.11.2020)

  9. #1317
    Оператор ДВК Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    6,437
    Спасибо Благодарностей отдано 
    2,071
    Спасибо Благодарностей получено 
    217
    Поблагодарили
    183 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Заодно подоспела вылизанная логическая схема ALU и EALU:

    1801VM2-Optimized [ALU & EALU] - rev 43.pdf
    Ув. д.г.к. @Titus , очень прошу вас дать мне знать, когда будет готов финальный пакет ваших разборок по этой теме,
    поскольку предлагаю разместить копию в библиотеке на сайте архива.
    Спасибо.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #1318
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Ув. д.г.к. @Titus , очень прошу вас дать мне знать, когда будет готов финальный пакет ваших разборок по этой теме
    Сложно ставить точку в теме реверса, оптимизации и понимания работы этих чипов.
    Кроме того, @Vslav еще не сфоткал альтернативные ХМ-ки. Так что раньше, чем через год, и не рассчитывай)

  11. Этот пользователь поблагодарил Titus за это полезное сообщение:

    hobot (29.10.2020)

  12. #1319
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Нашел ошибочку в схеме сдвига. Исправил, но обновлять не буду до будущих обновлений. Все равно никто не интересуется)

  13. #1320
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,269
    Спасибо Благодарностей отдано 
    506
    Спасибо Благодарностей получено 
    727
    Поблагодарили
    390 сообщений
    Mentioned
    47 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    @Vslav, посмотрел микропрограмму в ВМ2. Очень хорошо понятна, и расшифровывается без глобального перебора всех комбинаций.
    Мало того, перебор всех комбинаций я считаю даже вредным, потому что ты имеешь вход и выход, но не знаешь, почему получился этот выход.
    А при логическом анализе микропрограммы, все, как на ладони, чуть ли не с комментариями.
    Кроме того, есть шаги микропрограммы, которые не относятся к исполнению элементов инструкций. Например, команда ABORT имеет 10 шагов.
    И все эти шаги надо понимать, зачем они и почему.

Страница 132 из 148 ПерваяПервая ... 128129130131132133134135136 ... ПоследняяПоследняя

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

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

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

  1. Titus

Похожие темы

  1. Ответов: 3
    Последнее: 27.12.2019, 21:25
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 37
    Последнее: 13.09.2019, 16:53
  3. Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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