User Tag List

Страница 28 из 34 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя
Показано с 271 по 280 из 336

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

  1. #271

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    S_V_B скомпилировал проигрыватель MOD/STM авторства RDC. Я запустил на эмуляторе, посмотрел что он пишет в LPT-порт 161032. Нужна поддержка Covox в эмуляторе! А то как же так? Софт под Covox есть, а послушать не на чем.
    manwe.pdp-11.ru

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

  3. #272

    Регистрация
    01.02.2010
    Адрес
    Москва
    Сообщений
    769
    Спасибо Благодарностей отдано 
    180
    Спасибо Благодарностей получено 
    191
    Поблагодарили
    91 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А на своем реале не пробовал?

  4. #273

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

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Нужна поддержка Covox в эмуляторе! А то как же так? Софт под Covox есть, а послушать не на чем.
    Для поддержки ковокса нужна в принципе поддержка звука в эмуляторе, а ее пока нет.

  5. #274

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,054
    Спасибо Благодарностей отдано 
    1,143
    Спасибо Благодарностей получено 
    1,479
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, пытаюсь дописать свой эмулятор Союз-Неона до хоть какого-то рабочего состояния. Сравниваю с твоим.

    Вот такой вопрос - это бага эмулятора или так и задумано? Проверял на EmuStudio 0.15n.
    Запускаем эмулятор, на проверке памяти выходим в отладчик - F8.

    Доходим до 001000 (0x0200) в режиме USER:
    Код:
    r200
    HALT MMU: 000, 000, 000, 000, 002, 004, 000, 000
    USER MMU: 006, 008, 00A, 00C, 002, 004, 000, 000
    SNDC2R = 36458
    PPIC = IH-0
    PPIB = HI10
    PIC_IRQM = --5-----
    PICMR    = 76543210
    
     R0=8202  R4=0000  PSW =0000     0200  15DF 0003 F86A  MOV   #$0003,(#$F86A)
     R1=0000  R5=0000  PSW'=0000     0206  00A0            NOP
     R2=0000  SP=0000  PC' =0200     0208  15C2 040E       MOV   #$040E,R2
     R3=0000  PC=0200  Ctr=047188    020C  11C6            MOV   PC,SP
     Flags = U--------  CPU (Main)   020E  09DF 0402       JSR   (#$0402)
    Дальше как видим обращение к эмулируемому регистру -- как мы знаем, на NOP будет прерывание.

    Делаем шаг:
    Код:
    m0
    HALT MMU: 000, 000, 000, 000, 002, 004, 000, 000
    USER MMU: 006, 008, 00A, 00C, 002, 004, 000, 000
    SNDC2R = 36467
    PPIC = IH-0
    PPIB = HI10
    PIC_IRQM = --5-----
    PICMR    = 76543210
    
     R0=8202  R4=0000  PSW =0180     0368  11BF 7CA2       MOV   SP,@($800E)
     R1=0000  R5=0000  PSW'=0000     036C  17C6 800E       MOV   (#$800E),SP
     R2=0000  SP=0000  PC' =0200     0370  1166            PUSH  R5
     R3=0000  PC=0368  Ctr=047152    0372  1126            PUSH  R4
     Flags = HP-------  CPU (Main)   0374  10E6            PUSH  R3
    Странно, что мы сразу провалились в прерывание, не дойдя до NOP.

    Теперь пропустим всё прерывание:
    Код:
    r200
    HALT MMU: 000, 000, 000, 000, 002, 004, 000, 000
    USER MMU: 006, 008, 00A, 00C, 002, 004, 000, 000
    SNDC2R = 320
    PPIC = IH-0
    PPIB = H-10
    PIC_IRQM = --------
    PICMR    = 76543210
    
     R0=8202  R4=0000  PSW =0000     0200  15DF 0003 F86A  MOV   #$0003,(#$F86A)
     R1=0000  R5=0000  PSW'=0000     0206  00A0            NOP
     R2=0000  SP=0000  PC' =0200     0208  15C2 040E       MOV   #$040E,R2
     R3=0000  PC=0200  Ctr=045404    020C  11C6            MOV   PC,SP
     Flags = U--------  CPU (Main)   020E  09DF 0402       JSR   (#$0402)
    Мы опять на адресе 0200.
    Делаем два шага:
    Код:
    m0
    HALT MMU: F86, 000, 000, 000, 002, 004, 000, 000
    USER MMU: 006, 008, 00A, 00C, 002, 004, 000, 000
    SNDC2R = 334
    PPIC = IH-0
    PPIB = H--0
    PIC_IRQM = --------
    PICMR    = 76543210
    
     R0=8202  R4=0000  PSW =0000     0206  00A0            NOP
     R1=0000  R5=0000  PSW'=0000     0208  15C2 040E       MOV   #$040E,R2
     R2=0000  SP=0000  PC' =0200     020C  11C6            MOV   PC,SP
     R3=0000  PC=0206  Ctr=045350    020E  09DF 0402       JSR   (#$0402)
     Flags = U--------  CPU (Main)   0212  0A00            CLR   R0
    
    
    m0
    HALT MMU: F86, 000, 000, 000, 002, 004, 000, 000
    USER MMU: 006, 008, 00A, 00C, 002, 004, 000, 000
    SNDC2R = 343
    PPIC = IH-0
    PPIB = H--0
    PIC_IRQM = --------
    PICMR    = 76543210
    
     R0=8202  R4=0000  PSW =0180     0368  11BF 7CA2       MOV   SP,@($800E)
     R1=0000  R5=0000  PSW'=0000     036C  17C6 800E       MOV   (#$800E),SP
     R2=0000  SP=0000  PC' =0206     0370  1166            PUSH  R5
     R3=0000  PC=0368  Ctr=045314    0372  1126            PUSH  R4
     Flags = HP-------  CPU (Main)   0374  10E6            PUSH  R3
    Теперь мы упали в прерывание на NOP, причём в PPIB по-другому выставлены EF0/EF1.

    Это точно правильное поведение, что на одну запись в эмулируемый регистр мы отрабатываем прерывание дважды?

    Возможно, первое прерывание здесь связано с выставленным INT5 в PIC, но там же маска его запрещает, нет?

    @Alex_K, если радиальный сигнал HALT установлен до перехода в режим USER, то при переходе в USER сразу отрабатывает прерывание HALT, или сначала успевает отработать одна команда и только затем отрабатывает прерывание HALT?

    Тут же ещё всё сложнее. Переход в режим USER тут выполняется командой STEP, после которой не происходит обработки прерываний до выполнения следующей команды. Тогда выглядит так, что Titus это не учитывает.
    Последний раз редактировалось nzeemin; 25.12.2022 в 17:55.

  6. #275

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    @Alex_K, если радиальный сигнал HALT установлен до перехода в режим USER, то при переходе в USER сразу отрабатывает прерывание HALT, или сначала успевает отработать одна команда и только затем отрабатывает прерывание HALT?

    Тут же ещё всё сложнее. Переход в режим USER тут выполняется командой STEP, после которой не происходит обработки прерываний до выполнения следующей команды. Тогда выглядит так, что Titus это не учитывает.
    nzeemin, собственно на этот вопрос вы сами и ответили. После STEP обязательно выполнится команда нового процесса. А вот после START ничего не выполнится и сразу же перейдём в режим HALT. Тут ещё надо учитывать, что у радиального прерывания HALT приоритет равен пяти и если есть более приоритетные прерывания, то выполнятся они. Ну при START прерываний TRAP4 и TRAP10 не будет, а вот T-разряд и ACLO могут быть.

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

    nzeemin(25.12.2022), shapipovo(27.12.2022), Titus(26.12.2022)

  7. #276

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Это точно правильное поведение, что на одну запись в эмулируемый регистр мы отрабатываем прерывание дважды?
    Я думаю, что @Alex_K уже все прояснил)

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

    Только почему ты делаешь шаг командой 'm0'? Шаг - это просто Enter. А m0 - это запись памяти в файл.

  8. #277

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я думаю, что @Alex_K уже все прояснил)
    Alex_K прояснил про то, как работает команда STEP, а не почему прерывание возникает дважды.

  9. #278

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

    По умолчанию

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

  10. #279

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,054
    Спасибо Благодарностей отдано 
    1,143
    Спасибо Благодарностей получено 
    1,479
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, ещё вопрос про загрузку с дискеты.
    У себя я вижу что загружается 512 байт первого сектора, но загрузчик выглядит довольно странно. Так и задумано? Или этот код вообще не предназначен для исполнения?
    Код:
      001000  NOP     
      001002  BR      001036
      001004  HALT    
      001006  HALT    
      001010  HALT    
      001012  HALT    
      001014  HALT    
      001016  HALT    
      001020  HALT    
      001022  HALT    
      001024  HALT    
      001026  HALT    
      001030  HALT    
      001032  BIC     (R4), (R0)+
      001034  MOVB    000400(R0), (R0)+
      001040  JMP     @#000574
      001044  HALT    
      001046  HALT    
      001050  HALT    
      001052  HALT

  11. #280

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Titus, ещё вопрос про загрузку с дискеты.
    У себя я вижу что загружается 512 байт первого сектора, но загрузчик выглядит довольно странно. Так и задумано? Или этот код вообще не предназначен для исполнения?
    Тоже не могу пояснить, потому что основательно подзабыл.
    Думаю, @Alex_K и тут лучше меня подскажет.

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

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

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

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

Похожие темы

  1. EmuStudio-ZX
    от Titus в разделе Эмуляторы
    Ответов: 731
    Последнее: 02.01.2026, 00:34
  2. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1199
    Последнее: 29.12.2025, 05:26
  3. Эмулятор ТИА-МЦ-1 EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 107
    Последнее: 20.09.2024, 21:03
  4. Эмулятор МС-0515 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 143
    Последнее: 09.02.2023, 10:44
  5. ПК-11 'Союз-Неон'
    от Keeper в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 16.10.2013, 05:07

Ваши права

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