User Tag List

Страница 24 из 25 ПерваяПервая ... 202122232425 ПоследняяПоследняя
Показано с 231 по 240 из 311

Тема: Эмулятор НЕМИГА

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

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

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

    По умолчанию

    Цитата Сообщение от Stepanych Посмотреть сообщение
    Тестовый стенд физический, или эмулятор ?
    Вот тестовый стенд: https://github.com/nzeemin/nemigabtl-testbench

    Это ядро эмулятора (папка emubase просто копируется из nemigabtl) + набор тестов.
    Позволяет за минуту прогнать все тесты которые есть, убедиться что ничего не сломалось.
    Плюс на нём я разбираю подробно отдельные случаи.
    Последний раз редактировалось nzeemin; 01.02.2017 в 13:14.

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

  3. #2

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из другой темы, но подходит для этой.
    Цитата Сообщение от nzeemin Посмотреть сообщение
    По Немиге нужно разобраться с режимом HALT, сейчас вход/выход из него для меня не особо понятен,
    Как и говорил, после адреса 160000 ячейки заблокированы и с пульта не прочитаются до 170000.

    На реале после включения (ром 4.05, 4.06)
    170000/000000
    170002/000000
    170004/047764
    170006/001412
    170010/074010
    170012/000000
    170014/000000


    Далее 170016 не откликается.

    170020/001261
    170022/000000
    170024/000000
    170026/000000
    170030/000000
    170032/000000


    Далее.
    177100/000271
    177102/000377
    177104/000127
    177106/000106


    И ещё ( с эмулятором совпадают).
    177560/000000
    177562/000012
    177562/000200
    177564/000000
    177570/000000
    177572/000000
    177574/000000

  4. #3

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

    По умолчанию

    На 4.06 для команды пульта '/' есть переменная 177744 с адресом, ниже которого можно смотреть ячейки. На остальных прошивках такого нет.
    Правильное значение переменной 177744 равно 160000 и устанавливается только в одном месте, код на 161720:
    Код:
    161720: MOV    	#160000, @#177744
    На это место мы переходим из двух точек: (1) прерывание HALT, (2) команда 'D'.
    Код:
    ; Обработчик прерывания по сигналу/команде HALT
    160210: CMP	#056364, @#177776	; Проверка, настроена ли память режима HALT
    160216: BEQ	160224			; Да, настроена
    160220: JMP	@#161720		; Нет => выход на процедуру холодного старта
    То есть, признаком того что нужно настроить 177744, является отсутствие значения 056364 по адресу 177776.
    Теперь смотрим процедуру холодного старта:
    Код:
    ; Холодный старт при включении питания
    161726: MOV	#001000, SP		; Устанавливаем стек
    161732: CLR	R0
    161734: MOV	#056364, -(R0)		; -> (177776)
    161740: MOV	#164042, -(R0)		; Адрес стандартной п/п вывода символа -> (177774)
    То есть, сразу на холодном старте переменная 177776 будет установлена. В итоге переменная 177744 у меня оказывается не настроена, но на реале с ней всё в порядке.
    Какой из этого вывод? видимо при холодном старте сразу после первой команды (настройки стека) возникает прерывание HALT.

    - - - Updated - - -

    NemigaBTL 1.0.77
    Изменения с версии 53:
    * Отладчик: подсказки для текущей инструкции.
    * Режим экрана 896 x 624 увеличение 1.75 x 2
    * Прерывание HALT на старте, только для конфигураций 4.05/4.06

    - - - Updated - - -

    Как итог, в этой версии заработала команда пульта '/', нужные ячейки стали открываться.

    - - - Updated - - -

    Вложения Вложения

  5. #4

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, На реале после включения пишет:
    Код:
       МРТИ                                          КВ НЕМИГА 4.06  177777 РМП
    ЖДИТЕ..._
    И мигающий курсор. При этом на дисководе 0/1 загорается светодиод (двигатель не крутит).
    Т.е в пульт самостоятельно не выходит, а только тогда когда будет нажата кнопка ПУСК.

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

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Как итог, в этой версии заработала команда пульта '/', нужные ячейки стали открываться.
    А состояние регистров устройств?

  6. #5

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    nzeemin, На реале после включения пишет:
    Код:
       МРТИ                                          КВ НЕМИГА 4.06  177777 РМП
    ЖДИТЕ..._
    И мигающий курсор. При этом на дисководе 0/1 загорается светодиод (двигатель не крутит).
    Т.е в пульт самостоятельно не выходит, а только тогда когда будет нажата кнопка ПУСК.
    Думаю тут причина в том что функции сетевой платы пока не реализованы никак.

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

  7. #6

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    эта ячейка используется микросхемой умножения/деления, пока не видел описания её работы.
    Селектор адреса ВТ1 с аппаратным умножителем ВР2 с прошивкой 0006. ВГ1 управляется пр. 0007.

    Кстати неверно что на emuverse указана прошивка 0005. Пр. 0005 и 0003 используются когда нет ап. умножителя. Т.е. умножение идет программно при этих прошивках.

    На Немигах 4.05 и 4.06 ап. умножение. Да и на 3.03 судя по схеме тоже.

    И ошибка MUL при тесте TSTVM2 при ап. умножителе, а при программном возможно её нет.

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

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Буду делать постепенно, нужно разбираться с каждым отдельно.
    Можно использовать программу TSTMD для правильной эмуляции дисководов.

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

    И ещё баги.
    В эмуляторе на пр.4.06.

    Команда SH CON показывает память 3052Кб.
    Команда SH МЕМ вылет в пульт.
    Последний раз редактировалось MiX; 21.04.2018 в 19:56.

  8. #7

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Можно использовать программу TSTMD для правильной эмуляции дисководов.
    Мысль правильная, тем более что я так уже делал для МС-0515.
    В аттаче сырые треки, полученные после форматирования дискеты через TSTMD.

    - - - Updated - - -

    Ещё один аттачмент, сырые треки после форматирования в программе MF.SAV.
    Отличие только в первом секторе дорожки 00:
    Код:
    0000000A: FF 17  -- правильное число секторов на дорожку, 23.
    ...
    00000059: FF 17  -- правильное число секторов на дорожку, 23.
    0000005A: FF 30
    0000005B: FF 07
    0000008A: 80 39  -- контрольная сумма
    0000008B: FF 07  -- контрольная сумма
    Вложения Вложения
    Последний раз редактировалось nzeemin; 21.04.2018 в 21:47.

  9. #8

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

    По умолчанию

    Поразбирался с драйвером MX.SYS, который называет себя "ДРАЙВЕР ГМД ФОРМАТА MX40/80 МИКРОЦОС LTD. V2.2"
    Ожидания были такие что он соответствует драйверам MX от ДВК, описанному тут: http://zx-pk.ru/threads/20541-kontro...programmy.html
    Но оказалось что он скорее "по мотивам".

    Дорожка всегда читается и пишется целиком от начала до конца.
    Структура дорожки которую ожидает этот драйвер.
    Читаются первые 2841 байта от индекса.
    Код:
    Заголовок, 3 байта:
      Маркер 0363.
      Байт 0 (его можно рассматривать как старший байт от слова номера дорожки).
      Байт номер дорожки.
    Данные секторов, всего 11 секторов по 256+2 байт на сектор:
      128 слов = 256 байт данные секторов
      Слово контрольной суммы, полученное обычным сложением всех слов сектора.
    Концевик
      4 байта: 20 4F 54 01 (hex)
      Слово: номер дорожки * 2
    Все слова данных сектора, а также слово контрольной суммы, записываются в формате старший байт затем младший байт, что отличается от обычного представления слов в памяти (младший потом старший), поэтому после чтения сектора и перед записью выполняется SWAB над всеми словами.
    Без концевика получается 3 + 11 * (256 + 2) = 2841 байт, именно столько читает драйвер, остальные байты до конца дорожки игнорируются (длина дорожки примерно 3125 байт).
    При записи дорожки кроме заголовка и данных секторов пишется ещё 6 байт концевика.

  10. #9

    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,301
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    293
    Поблагодарили
    211 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Дорожка всегда читается и пишется целиком от начала до конца.
    А разве для MX не всегда так?

    >Структура дорожки которую ожидает этот драйвер.
    Есть отличия от ДВКшного MX? Я только в двух словах концевика отличия увидел, так они у разных mx.sys на двк тоже отличаются.

    >что он скорее "по мотивам". ..... выполняется SWAB над всеми словами
    А как иначе? В ДВК кнгмд аппаратно работает со словами, а в Немиге - с байтами.

  11. #10

    Регистрация
    16.02.2011
    Адрес
    Szczecin, Польша
    Сообщений
    25
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня замечание к информации в emuverse по векторе прерывания 160006. Судя по листинге ПЗУ калькулятора Электроника МК-90, это вектор обработки прерывания от двойной ошибки шины в режиме HALT (в Немиге вызывает перезагрузку системы).
    Код:
    160000: .WORD   000000
    160002: .WORD   160016, 000340
    160006: .WORD   160022, 000340
    160012: .WORD   160030, 000340
    
    160016: CLR     R0
    160020: BR      160034
    
    160022: MOV     #000002,R0
    160026: BR      160034
    
    160030: MOV     #000004,R0
    160034: TST     @#000050
    160040: BEQ     160050
    160042: ADD     @#000050,R0
    160046: JMP     (R0)
    
    160050: MOV     (SP),R1
    160052: MOV     #001000,SP
    160056: MOV     160116(R0),R0
    160062: MOV     R0,R5
    160064: ADD     #000025,R0      ;адрес конца строки
    160070: MOV     #000006,R4      ;число цифр
    160074: JSR     PC,100032       ;вывод восьмеричного числа
    160100: MOV     R5,R0
    160102: MOVB    (R0)+,R2
    160104: BEQ     160114
    160106: JSR     PC,120034       ;вывод символа r2 на экран
    160112: BR      160102
    160114: BR      160114
    
    160116: .WORD   006236          ;строка "ОСТ ПО АДРЕСУ 000000"
    160120: .WORD   006265          ;строка "ДВ ОШ КАНАЛА  000000"
    160122: .WORD   006314          ;строка "ОШ ВЕК ПРЕРЫВ 000000"

Страница 24 из 25 ПерваяПервая ... 202122232425 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор ДВК
    от Patron в разделе Эмуляторы отечественных компьютеров
    Ответов: 1842
    Последнее: 23.12.2025, 07:10
  2. Учебный комплекс НЕМИГА.
    от felix в разделе ДВК, УКНЦ
    Ответов: 403
    Последнее: 21.12.2025, 00:50
  3. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 20
    Последнее: 03.09.2024, 13:24
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

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