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

User Tag List

Страница 33 из 34 ПерваяПервая ... 293031323334 ПоследняяПоследняя
Показано с 321 по 330 из 336

Тема: Эмулятор Союз-Неон ПК-11/16 - EmuStudio

  1. #321
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,654
    Спасибо Благодарностей отдано 
    1,252
    Спасибо Благодарностей получено 
    1,865
    Поблагодарили
    709 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Кстати, когда Titus писал EmuStudio, то он спрашивал меня про адрес 0160000. Ведь RT-11 проверяет объём памяти по адрес 0170000, потому он эту ячейку исключил, а то RT-11 не загружалось.
    У меня все регистры, которых нет - это заглушки, из которых читается 0.
    А так как при чтении из 0160000 это приводило к глюку, я по этому адресу сделал несуществующий регистр, который трапается. Мог бы и по всем другим адресам тоже сделать, но надобности в этом не возникло, т.к. все программы работают прекрасно. Особенно игры)

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

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

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

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Меня сейчас больше волнует вопрос - почему тогда его эмулятор грузит RT-11, а мой - нет. :clownface:
    Потому что еще какие-то вещи работают не так, как нужно для запуска системы. Исправятся, и все заработает)

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

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Alex_K, а может как-то сказываться скорость работы процессора? сейчас мой медленнее того что у Титуса раза в полтора.
    Это сомнительно. Это же не в разы.

  2. #322
    Guru Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,001
    Спасибо Благодарностей отдано 
    1,073
    Спасибо Благодарностей получено 
    1,246
    Поблагодарили
    480 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашёл почему выходит в отладчик, но это пока мало что даёт:
    V.SUPR - прерывание по необслуживаемому вектору;

    До кучи ещё, обнаружил что если остановиться на точке останова где-то в начале загрузки и затем продолжить - то приветствие RT11 выводится. А если не прерывать процесс эмуляции - то нет :clownface:

    Чувствую, что уже не так много осталось доделать - поймать какие-то мелкие косяки и/или мои собственные непонимания.

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Нашёл почему выходит в отладчик, но это пока мало что даёт:
    V.SUPR - прерывание по необслуживаемому вектору;

    До кучи ещё, обнаружил что если остановиться на точке останова где-то в начале загрузки и затем продолжить - то приветствие RT11 выводится. А если не прерывать процесс эмуляции - то нет :clownface:

    Чувствую, что уже не так много осталось доделать - поймать какие-то мелкие косяки и/или мои собственные непонимания.
    Собственно если нет какого-то вектора, то вот список:
    ;async interrupt vectors
    dw v.init ,2 ;reset-instruction
    dw v.flop ,2 ;floppy disk int
    dw v.rcrd ,2 ;dl-receiver ready
    dw v.trrd ,2 ;dl-transmitter ready
    dw v.kbd ,2 ;keyboard request
    dw v.scrn ,2 ;screen interrupt
    dw v.prrd ,2 ;printer ready
    dw v.slot ,2 ;request from slot

    А вот и место, откуда вызывается, переход на метку supr:
    ;------------------------------------------------
    h.int: ;
    bit #4, ppib ;
    beq schedule ;
    ioint: mov #piccsr,r1 ;
    mov #14, (r1) ;
    clr r0 ;
    bisb (r1), r0 ;
    aslb r0 ;
    bcc schedule ;
    ;
    mov #40, (r1)+ ;eoi
    aslb r0 ;
    add #v.init,r0 ;
    int4: mov (r0)+, r3 ;+2
    beq supr ;
    int5: bmi int10 ;
    call (r3) ; call hlt-process
    br schedule ;



    Поставить точку останова, посмотреть, что в регистре R0 перед прибавлением v.init.

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

    nzeemin (05.01.2023)

  5. #324
    Guru Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,001
    Спасибо Благодарностей отдано 
    1,073
    Спасибо Благодарностей получено 
    1,246
    Поблагодарили
    480 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подозреваю, что у меня что-то не то с реализацией VIRQ, хотя казалось бы всё сделал по инструкции.
    Вот такая трасса выполнения, которая заканчивается инструкцией HALT:
    Код:
    U002100	NOP
    U002102	MOV	#000000, @#177546
    002100 CPU HALT INT vector=000274 PC=001446 PSW=000600
    H001446	MOV	R5, @#100052
    H001452	MOV	R0, @#100040
    H001456	MOV	@#100146, R5
    H001462	MOV	(R5)+, R0
    H001464	CMP	(R5), R0
    H001466	BNE	001512
    H001470	BIC	#000010, @#100036
    H001476	BIS	#000010, @#161034
    H001476	GETPORT 161034 PPIC -> 000015
    H001476	SETPORT 000015 -> (161034) PPIC 1101
    H001504	CMP	#100150, R5
    H001510	BEQ	001536
    H001512	MOV	R0, @(R5)+
    H001514	MOV	-(R5), 000002(R0)
    H001520	CLR	-(R5)
    H001522	SUB	#100072, R5
    H001526	MFUS
    H001530	WCPC
    H001532	MFUS
    H001534	WCPS
    H001536	MOV	@#100040, R0
    H001542	MOV	@#100052, R5
    H001546	STEP
    U000000	HALT
    000000 CPU HALT INT vector=000170 PC=001550 PSW=000600
    Собственно как выполняю прерывание VIRQ -- сначала заносим в стек CPSW и CPC, затем (мы же не дождались ответа) - выполняем HALT mode interrupt по вектору 274.

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Собственно как выполняю прерывание VIRQ -- сначала заносим в стек CPSW и CPC, затем (мы же не дождались ответа) - выполняем HALT mode interrupt по вектору 274.
    Перед заносом в стек процессор принудительно переключается в режим USER, потому что VIRQ можно вызвать из HALT-режима с разрешёнными прерываниями. Хотя обратно на Неоне в него не вернуться.
    Да и зря сбрасываете m_VIRQrq при обработке VIRQ, требование будет всегда, пока в порте PPIC не сбросят это требование. И неправильно реализована запись в PPIC, при сбросе бита 3 устанавливается требование VIRQ, а при установке не сбрасывается.

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

    nzeemin (07.01.2023)

  8. #326
    Guru Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,001
    Спасибо Благодарностей отдано 
    1,073
    Спасибо Благодарностей получено 
    1,246
    Поблагодарили
    480 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Перед заносом в стек процессор принудительно переключается в режим USER
    Спасибо! Теперь проходит немного дальше - после первых блоков .SYS-файлов читает ещё два блока больше из RT11SJ.SYS и висит на опросе клавиатуры.

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

    Radon17 (07.01.2023)

  10. #327
    Guru Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,001
    Спасибо Благодарностей отдано 
    1,073
    Спасибо Благодарностей получено 
    1,246
    Поблагодарили
    480 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Спасибо! Теперь проходит немного дальше - после первых блоков .SYS-файлов читает ещё два блока больше из RT11SJ.SYS и висит на опросе клавиатуры.
    Удалось раскопать вот что: застреваем на ожидании что значение по адресу 146070 станет нулевым, но там всегда 001.
    Отследил все изменения этой ячейки памяти (UR6=032), после теста памяти изменение только одно, по адресу PC=155130:
    Код:
    U155120  	CMPB    #000377, 000010(R3)
    U155126  	BEQ     155120
    U155130  	INCB    000010(R3)	; тут меняется 000 -> 001
    155130	Value at 146070 changed 000000 -> 000001
    ...
    155262=DAB2 	TSTB    000010(R3)	; R3=146060, (146070)=001 -- застряли тут
    155266		BNE     155262
    Вот фрагмент кода, может удастся опознать что это?
    Код:
      155100  DEC     (R4)+
      155102  MOV     (R4), R4
      155104  MOV     (R4), 155034
      155110  CLRB    @#177776
      155114  CLR     (R4)+
      155116  MOV     R3, (R4)+
      155120  CMPB    #000377, 000010(R3)
      155126  BEQ     155120
      155130  INCB    000010(R3)		; тут изменение 000 -> 001
      155134  PUSH    R3
      155136  PUSH    R0
      155140  MOV     R4, R3
      155142  POP     (R4)+
      155144  CLRB    R1
      155146  MOV     R1, (R4)+
      155150  MOV     (R5)+, (R4)+
      155152  MOV     000002(SP), (R4)+
      155156  TST     (R5)+
      155160  MOV     (R5)+, (R4)
      155162  CMPB    (R4), #000377
      155166  BNE     155200
      155170  SWAB    (R4)
    ...
      155240  MOV     R3, 177774(R1)
      155244  MOV     R3, (R2)
      155246  CLRB    @#177776
      155252  POP     R5
      155254  POP     R3
      155256  TST     -(R5)
      155260  BNE     155270
      155262  TSTB    000010(R3)		; тут зацикливаемся
      155266  BNE     155262
      155270  POP     R4
      155272  RETURN
    Последний раз редактировалось nzeemin; 07.01.2023 в 17:11.

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    155110 CLRB @#177776
    Ох как плохо. Никита, а у вас эмулятор точно делает TRAP4 в диапазоне адресов 0177700-0177777? Всё дело в том, что RT-11 собрана с использованием регистра PSW 0177776. А вот вторичный загрузчик проверяет этот регистр, и если его нет, то патчит только что загруженный RMON на использование команд MFPS/MTPS.

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

    nzeemin (07.01.2023)

  13. #329
    Guru Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,001
    Спасибо Благодарностей отдано 
    1,073
    Спасибо Благодарностей получено 
    1,246
    Поблагодарили
    480 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ох как плохо. Никита, а у вас эмулятор точно делает TRAP4 в диапазоне адресов 0177700-0177777? Всё дело в том, что RT-11 собрана с использованием регистра PSW 0177776. А вот вторичный загрузчик проверяет этот регистр, и если его нет, то патчит только что загруженный RMON на использование команд MFPS/MTPS.
    Отлично! То что нужно. Загрузился до командной строки.


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

    Aleks1985 (07.01.2023), Alex_K (07.01.2023), Radon17 (08.01.2023)

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Отлично! То что нужно. Загрузился до командной строки.
    УРРРРРРРРРРРААААААААААААА ААААА !!!!!
    А клавиатура работает? В командной строке можно что-нибудь понабирать?

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

    nzeemin (07.01.2023)

Страница 33 из 34 ПерваяПервая ... 293031323334 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1191
    Последнее: 15.02.2024, 13:32
  2. Эмулятор МС-0515 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 143
    Последнее: 09.02.2023, 10:44
  3. Эмулятор ТИА-МЦ-1 EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 104
    Последнее: 15.01.2022, 01:17
  4. EmuStudio-ZX
    от Titus в разделе Эмуляторы
    Ответов: 597
    Последнее: 09.03.2020, 17:30
  5. ПК-11 'Союз-Неон'
    от Keeper в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 16.10.2013, 05:07

Ваши права

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