User Tag List

Страница 15 из 44 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 485

Тема: FPGA-реплика ЭВМ ДВК-3 и платы МС1201

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,527
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    716
    Поблагодарили
    598 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я с таким же сталкивался на 1831ВМ1 и J11, если настроить при старте сразу выход в MicroODT
    А чего его там смотреть - первые пять (примерно) команд я уже наизусть помню. А вот чего там делается с 430 адреса - не, не смотрел

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

    Цитата Сообщение от forth32 Посмотреть сообщение
    Там вся логика - на микропрограммном уровне, который для меня загадка.
    Я на вскидку полазал по коду, но где там MicroODT - не нашёл. Может, Vslav подскажет...

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

  3. #2

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, где там ODT вроде понятно, и обработчик команды G есть:
    Код:
    cmd_g:	mw	RDSTL,PCL	;
    	ll	0,RIRL		;
    	jsr	putch		;
    	jsr	putch		;
    	sw	RPSWL,RPSWL	;
    	lcf	NZVC,RPSWL	;
    	jmp	1$		;
    				;
    	.loc	0x196		;
    1$:	ri	i4		; reset	T-bit interrupt
    	jmp	2$		;
    				;
    	.loc	0x19A		;
    2$:	si	i5		; disable interrupts
    	jmp	resop		;
    				;
    	.loc	0x19E		;
    resop:	jsr	sinit		; performs RESET
    	jmp	rsvc0		; instruction
    Но тут надо знать знать внутреннюю архитектуру, систему команд... Я об этом и говорил, что потроха процессора для меня пока загадка.

  4. #3

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

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    2$: si i5 ; disable interrupts
    Цитата Сообщение от Vslav Посмотреть сообщение
    Почему пытается - непонятно, прерывания должны быть запрещены.
    А почему запрет прерываний устанавливается в 5-м разряде? Вроде в LSI-11 5-й и 6-й разряды не используются, запрет прерываний устанавливается в 7-м разряде.
    Цитата Сообщение от forth32 Посмотреть сообщение
    resop: jsr sinit ; performs RESET
    Сигнал RESET по идее должен сбросить и внутренний триггер сетевого таймера в процессоре.

    forth32, а какие у вас в первичном загрузчике значения ячеек 0100 и 0102. В стандартном драйвере там нули, т.е. будет перезапуск первичного загрузчика. Также в стандартном драйвере после команды JMP исполняется команда установки указателя стека MOV #10000, SP.

  5. #4

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Сигнал RESET по идее должен сбросить и внутренний триггер сетевого таймера в процессоре.
    В M2 не совсем так, триггер который детектирует фронт EVNT - он внешний по отношению к MCP-1600, обычный TM2. И сбрасывается выделенным сигналом CLR_EVNT, который генерируется микропрограммно. После сброса CLR_EVNT генерируется, а по команде G - нет. И сам MCP-1600 уже реагирует на уровень с выхода TM2 - есть высокий - переходим на обработку таймера.

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

    Ну что, я вас поздравляю, похоже, мы нашли багу в MicROM от DEC .
    Инструкция si в обработчике cmd_g устанавливает флажок I5, что соответствует разрешению прерываний внутри MCP-1600.
    Этот флажок поступает на матрицу PLM, и если он активен и есть запрос прерывания, то вместо обработки инструкции микропрограмма аппаратно (матрица выдает нужный LC) перебрасывается на обработчик. Итого - в слове PSW PDP-11 флажок-то может быть любой, но если I5 установлен - то оно идет на прерывание. Если фронт от таймера уже был, то и запрос активен. И пока загрузка PSW командой PDP-11 не произойдет и I5 при ее обработке не сбросится - прерывания по факту будут разрешены. Невзирая на PSW PDP-11 . При нормальном старте, не из ODT этой инструкции si нет и все работает. А M4 - то отдельно надо смотреть.

    Update: а это, кстати, может быть и не ошибка, а законный и документированный старт из ODT с разрешенными прерываниями.
    Последний раз редактировалось Vslav; 04.02.2021 в 00:42.

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

    Alex_K(04.02.2021), forth32(04.02.2021), Hunta(04.02.2021)

  6. #5

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    После сброса CLR_EVNT генерируется, а по команде G - нет.
    А вот это уже недоработка. Да и после запуска по команде G на ДВК в PSW ложится 0340.

  7. #6

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот это уже недоработка. Да и после запуска по команде G на ДВК в PSW ложится 0340.
    Не, я вижу что все законно в cmd_g:
    Код:
    	sw	RPSWL,RPSWL	;
    	lcf	NZVC,RPSWL	;
    Вот команда SW - она вычитает 16-битную пару, тут сама из себя. То есть PSW=0. Это у меня комментарий дебильный и ошибочный "disable interrupts". А изначально люди намерено поставили в обработчике "G" PSW=0 и разрешили прерывания. Ну мы можем добавить сброс запроса таймера по INIT, но это не совсем в тему, оно же будет сбрасываться при нормальном исполнении инструкции RESET - и будем терять прерывания от таймера. Вот в обрабочик cmd_g можно сброс запроса таймера и добавить. Но будет ненулевая вероятность что после сброса и до запрета прерываний инструкцией PDP-11 все-таки таймер прилетит, то есть - сброс в cmd_g - не гарантия.

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

    Цитата Сообщение от forth32 Посмотреть сообщение
    Ситуация изменилась. Теперь процессор влетает в двойной таймаут шины ровно 1 раз
    Возможно после сброса была генерация одного фронта, и оно залипло на детекторе фронта (сделанного согласно оригинального М2) внутри lsi_wb:
    Код:
    //
    // Periodic timer interrupt edge detector
    //
    always @(posedge vm_clk_p)
    begin
       evnt_ed <= vm_evnt;
       if (mc_clr_evnt | vm_dclo)
          evnt_rq <= 1'b0;
       else
          if (vm_evnt & ~evnt_ed)
             evnt_rq <= 1'b1;
    end
    А щелкнули переключателем выключения таймера когда? Уже после выпадения в ODT?
    Последний раз редактировалось Vslav; 04.02.2021 в 00:53.

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

    forth32(04.02.2021), hobot(04.02.2021)

  8. #7

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

    По умолчанию

    Мой тест из ODT по @1622G тоже на LSI-11 не стартует, и тоже код 3 - двойная ошибка шины светится. Если предварительно установить SP - работает. Если запретить прерывание таймера - тоже работает. Похоже оно пытается таймер обработать сразу и умирает. Почему пытается - непонятно, прерывания должны быть запрещены.

  9. #8

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интересно получается. Попробовал повторить эксперимент с отключенным таймером.
    Код:
    000000                                                      
    @172140/000040 37                                           
    172142/000000 0 
    @0G                                                         
    000000                                                      
    @M000013                                                    
    @R6/177774                                                  
    @P                                                          
    RT-11SJ  V05.01  
    ?KMON-F-File not found DK:STARTS.COM
    
    .
    Ситуация изменилась. Теперь процессор влетает в двойной таймаут шины ровно 1 раз, перед выполнением кода загрузчика. А после выполнения первой же инструкции все начинает работать. Действительно, при этом PSW=0, прерывания должны быть запрещены. Странно.
    Проверить бы это на реальной электронике-60. Только где ж ее взять...

  10. #9

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,527
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    716
    Поблагодарили
    598 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Проверить бы это на реальной электронике-60. Только где ж ее взять...
    У меня есть М2, но её надо восстановить - кондёры выкушены.. Не раньше выходных

  11. #10

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

    По умолчанию

    А можно листинг загрузчика выложить? Первые несколько команд?

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А почему запрет прерываний устанавливается в 5-м разряде? Вроде в LSI-11 5-й и 6-й разряды не используются, запрет прерываний устанавливается в 7-м разряде.
    Это не разряд в слове состояния процессора. В MCP-1600 есть специальный регистр управления прерываниями и биты 6-4 могут рулиться отдельно выделенными командами si/ri.
    Последний раз редактировалось Vslav; 04.02.2021 в 00:27.

Страница 15 из 44 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Реплика контроллера НГМД ДВК MY4
    от anasana в разделе ДВК, УКНЦ
    Ответов: 47
    Последнее: 30.06.2023, 19:07
  2. Реплика всего семейства ДВК
    от Daniil Chislov 86 в разделе ДВК, УКНЦ
    Ответов: 21
    Последнее: 13.11.2019, 16:36
  3. Ответов: 6
    Последнее: 30.07.2018, 09:04
  4. Аукцион плат ДВК МС1201.02, НМЛ СМ5300.01 и др.
    от OS в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 19.11.2011, 14:02
  5. Реплика КМД ДВК (MY)
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 19
    Последнее: 12.11.2009, 15:43

Ваши права

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