User Tag List

Страница 159 из 174 ПерваяПервая ... 155156157158159160161162163 ... ПоследняяПоследняя
Показано с 1,581 по 1,590 из 1740

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

  1. #1581

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это лишняя работа.
    Тю, я думал тебе оно интересно, ты же вон код вручную разбирал - это как пруд чайной ложкой копать .
    Цитата Сообщение от Titus Посмотреть сообщение
    Зачем, если и так все уже расшифровано.
    Не, компилируемый исходник это исходник - можно вносить серьезные изменения и дополнения.
    Да и вдруг удастся переоптимизировать. Хотя вряд ли, алгоритмам оптимизации типа карт Карно в обед тыщу лет.

  2. #1582

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

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

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

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

  3. #1583

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Для понимания принципа работы, изменения вносить не нужно.
    Неа, высшая степень понимания - это когда ты можешь что-то поменять. Вот только когда предпринимаешь попытку изменения - тогда и понимаешь что ничего не понимаешь.

  4. #1584

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

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

  5. #1585

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию ВМ2: Команды с двумя операндами, расположенными в памяти

    И, наконец, финальная вишенка на торте описания микрокода ВМ2 - это команды с двумя операндами, расположенными в памяти.


    MOV(B), BIS(B), BIC(B), ADD, SUB, CMP(B), BIT(B):
    Код:
    //======================================================================
    //			
    // 	   	      Oперации с двумя операндами вида ss,dd
    //
    //  MOV(B), BIS(B), BIC(B), ADD, SUB, CMP(B), BIT(B)
    //
    //  step=1 для байтовых команд, если dd<>R6 и dd<>R7
    //  step=2 для всх остальных команд
    //
    //  RI2=1, если адресация ss: (R7), (R7)+, -(R7), @(R7)+, @-(R7), X(Rn), @X(Rn)
    //
    //  Циклы шины IO_X001 для:
    //
    //  CMP(B), BIT(B)
    //  Read (IO_RD, IO_IN) - Инициировать цикл чтения шины в регистр BRD
    //
    //  MOV:
    //  Write (IO_WR) - Инициировать цикл записи BRD на шину 
    //
    //  MOVB, BIS(B), BIC(B), ADD, SUB:
    //  R-M-W (IO_RD, IO_WR, IO_IN) - Инициировать цикл чтения шины в регистр BRD
    //				  с последующим циклом записи по готовности BRD 
    // 
    //======================================================================
    0x0F:	if (Rn)		RA=Rs			IO_RD, IO_IN		// Инициировать цикл чтения шины
    			Rs=Rs
    			
    	if (Rn)+ and (IX1=0)						// Если Rn<>R7
    			RA=Rs
    			Rs=Rs+step
    			
    	if (Rn)+ and (IX1=1) and (IX0=1)				// Если Rn=R7, и работа со словом
    			PC1=PC2			DISABLE_CACHE		// Запретить кэш и включить режим использования BIR как данных
    									// Фактически PC1=PC1+2
    			ACC=Rs						// Пустая операция
    									// Чтение BRD не инициируется, т.к. в нем уже и так находится требуемое слово
    			
    	if (Rn)+ and (IX1=1) and (IX0=0)				// Если Rn=R7, и работа с байтом
    			PC1=PC2			DISABLE_CACHE		// Запретить кэш и включить режим использования BIR как данных
    									// Фактически PC1=PC1+2
    	 		ACC=PC1-2					// ACC=PC1-2 (коррекция, т.к. PC1 опережает реальное значение R7 на 2)
    	 		RA=ACC			IO_RD, IO_IN		// Инициировать цикл чтения шины
    
    	if -(Rn)	Rs=Rs-step
    			RA=Rs			IO_RD, IO_IN		// Инициировать цикл чтения шины
    
    	if @(Rn)+ and (IX1=0)						// Если Rn<>R7
    			RA=Rs			IO_RD, IO_IN		// Инициировать цикл чтения шины
    			Rs=Rs+2
    			GOTO 0x32
    
    	if @(Rn)+ and (IX1=1)						// Если Rn=R7
    						WAIT_BRD		// Ожидание готовности чтения BRD (на самом деле BIR)
    			PC1=PC2			DISABLE_CACHE		// Запретить кэш и включить режим использования BIR как данных
    									// Фактически PC1=PC1+2
    			ACC=BIR
    			RA=ACC			IO_RD, IO_IN		// Инициировать цикл чтения шины
    
    	if @-(Rn)	Rs=Rs-2
    			RA=Rs			IO_RD, IO_IN		// Инициировать цикл чтения шины
    			GOTO 0x32
    	
    	if X(Rn)				WAIT_BRD		// Ожидание готовности чтения BRD (на самом деле BIR)	
    			PC1=PC2			DISABLE_CACHE		// Запретить кэш и включить режим использования BIR как данных
     			ACC=Rs+BIR
     			RA=ACC			IO_RD, IO_IN		// Инициировать цикл чтения шины
    
    	if @X(Rn)				WAIT_BRD		// Ожидание готовности чтения BRD (на самом деле BIR)		
    			PC1=PC2			DISABLE_CACHE		// Запретить кэш и включить режим использования BIR как данных
    			ACC=Rs+BIR
    			RA=ACC		
    			GOTO 0x32	
    	
    	if (dd=Rn) and (RI2=0)						// Если приемник - регистр и ss не использует R7
    			GOTO 0x13
    	if (dd=Rn) and (RI2=1)						// Если приемник - регистр и ss использует R7
    			GOTO 0x12
    	else		GOTO 0x03					// Иначе приемник - память
    	
    //----------------------------------------------------------------------   Чтение операнда из памяти
    0x32:						WAIT_BRD		// Ожидание готовности чтения BRD
    			ACC=BRD
    			RA=ACC			IO_RD, IO_IN		// Инициировать цикл чтения шины
    			
    	if (dd=Rn) and (RI2=0)						// Если приемник - регистр и ss не использует R7
    			GOTO 0x13
    	if (dd=Rn) and (RI2=1)						// Если приемник - регистр и ss использует R7
    			GOTO 0x12
    	else		GOTO 0x03					// Иначе приемник - память
    			
    //----------------------------------------------------------------------   Приемник - регистр, ss использует R7
    0x12:						WAIT_BRD		// Ожидание готовности чтения BRD
    			RS=BRD
    //----------------------------------------------------------------------   Кэширование следующей команды
    0x10:			
    			RA=PC2			IO_RD, IO_IN, IO_RCD	// Инициировать цикл чтения шины в регистр BIR и BRD одновременно (кеширование следующей команды/данных)
    			PC1=PC2						// Фактически имитация PC1=PC+2
    			PC2=PC2+2					
    			
    //----------------------------------------------------------------------   Приемник - регистр
    0x13:
    	if (RI2=0)				WAIT_BRD		// Если ss не использует R7, то oжидание готовности чтения BRD
    			ALU BRD,Rd					// Операции ALU из шага 0x3B, в качестве приемника Rd, в качестве источника BRD
    	else								// Иначе ss использует R7
    			ALU RS,Rd					// Операции ALU из шага 0x3B, в качестве приемника Rd, в качестве источника RS
    	endif 
    						PLI_REQ			// Запросить проверку запросов на прерывание
    	if (Rd=R7)							// Если Rd=R7, то
    			GOTO 0x21					// Перейти на команду выборки следующей некэшированной инструкции
    	else								// Иначе
    			GOTO 0x01					// Перейти на команду выборки следующей инструкции	
    
    
    //----------------------------------------------------------------------   Приемник - память
    0x03:						WAIT_BRD		// Ожидание готовности чтения BRD
    			RS=BRD
    	if (RI2=0)	GOTO 0x17					// Если ss не использует R7, то перейти на шаг 0x17 операции с двумя операндами
    									 
    //----------------------------------------------------------------------   ss использует R7
    0x16:									// Кэширование следующей команды (для того, чтобы адресация dd по R7 работала корректно)
    			RA=PC2			IO_RD, IO_IN, IO_RCD	// Инициировать цикл чтения шины в регистр BIR и BRD одновременно (кеширование следующей команды/данных)
    			PC1=PC2						// Фактически имитация PC1=PC+2
    			PC2=PC2+2					
    
    			GOTO 0x17					// Перейти на шаг 0x17 операции с двумя операндами
    //----------------------------------------------------------------------
    Больше в микрокоде ничего нет, так что на этом, это самое, мои полномочия всё... закончены)

    Скрытый текст

    [свернуть]

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

    Alex_K(10.12.2020)

  6. #1586

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Больше в микрокоде ничего нет, так что на этом, это самое, мои полномочия всё... закончены)
    А где глюк с @PC?

  7. #1587

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А где глюк с @PC?
    У меня нет ссылки на этот тест.

  8. #1588

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    У меня нет ссылки на этот тест.
    Titus, вы же сами об этом спрашивали полмесяца назад - здесь.

  9. #1589

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Titus, вы же сами об этом спрашивали полмесяца назад - здесь.
    По ссылке я увидел только этот тест, но он тестирует компаратор адреса.

  10. #1590

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    По ссылке я увидел только этот тест, но он тестирует компаратор адреса.
    Читать надо внимательно, там ссылка на страницу с тестами - здесь. Там много чего есть.

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

    А вот и конкретные тесты.

Страница 159 из 174 ПерваяПервая ... 155156157158159160161162163 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 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

Ваши права

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