Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Эмулятор УКНЦ - EmuStudio (http://zx-pk.ru/showthread.php?t=18027)

Titus 27th February 2012 01:48

Quote:

Originally Posted by Alex_K (Post 472524)
По сигналу EVNT в процессоре устанавливается триггер. Если между запретом прерываний по MTPS и запретом через регистр 177054 прошла смена фронта сигнала, то он будет зафиксирован в процессоре. При разрешении прерываний по MTPS естественно проскочит и прерывание по таймеру, хотя по 177054 оно будет запрещено.

Ой, вообще-то у меня сделано так же. Но на эмулях это прерывание в тесте не проскакивает, а на реале иногда да. Может связано с разной скоростью.
Хотя, знаешь, как я делал, разрешал прерывания, чтобы проскочило взведенное от сетевого таймера, а потом делал свои дела. И все равно оно проскакивало в момент измерений иногда.

---------- Post added at 00:47 ---------- Previous post was at 00:45 ----------

Quote:

Originally Posted by Alex_K (Post 472524)
Кстати по поводу VT200.SAV. Программка это с довольно крутой защитой, такие методы адресации применяет, что сходу и не поймешь как это работает.
Советую посмотреть в отладчике UKNCBTL. Вызвать отладочную консоль. Как загрузится RT-11, в консоли переключиться на ЦП командой "p". Потом дать команду "g1070", и запустить в RT-11 VT200. В отладчике остановится по адресу 1070, далее по F8 можно пройти по шагам.
Может найдете ошибку у себя в процессоре.

Ошибок вроде не должно быть. Но есть недописанные команды защищенного режима. А так же RTT отрабатывается, как RTI. Бита T тоже нет.

---------- Post added at 00:48 ---------- Previous post was at 00:47 ----------

Ты не прозевал версию 0.5c? Ее никто пока не скачал.

Alex_K 27th February 2012 01:49

Quote:

Originally Posted by Titus (Post 472528)
Ошибок вроде не должно быть. Но есть недописанные команды защищенного режима. А так же RTT отрабатывается, как RTI. Бита T тоже нет.

Не употребляется там ни RTT, ни бит T, а есть методы адресации через счетчик команд, используются нечетные адреса, ну всякое другое.
Так что советую глянуть, весьма полезно и поучительно.

Titus 27th February 2012 01:51

Quote:

Originally Posted by Alex_K (Post 472532)
есть методы адресации через счетчик команд, используются нечетные адреса, ну всякое другое.
Так что советую глянуть, весьма полезно и поучительно.

У меня должны работать.
А нечетные адреса у меня преобразуются в четные.

Alex_K 27th February 2012 01:54

Quote:

Originally Posted by Titus (Post 472535)
А нечетные адреса у меня преобразуются в четные.

Х-м-м-м!? А на каком этапе?

Titus 27th February 2012 01:56

Quote:

Originally Posted by Alex_K (Post 472537)
Х-м-м-м!? А на каком этапе?

На этапе доступа к шине. Младший бит при словном доступе отбрасывается.

Patron 27th February 2012 02:02

Вот любопытный тест влияния нечётного PC на результаты выполнения команд:

LSI-11 Traps Tests #3

На ДВК-1 тест даёт такой результат:

Code:

LSI-11 Traps Tests #3

Test 1
------
CALL ADDR+1
ADDR:
PC/001127

Test 2
------
MOVB #1,WORD
MOVB #2,WORD+1
MOVB WORD,R1
R1/000001
INC  PC
MOVB WORD,R1
R1/000002

Program completed.


Alex_K 27th February 2012 02:03

Quote:

Originally Posted by Titus (Post 472538)
На этапе доступа к шине. Младший бит при словном доступе отбрасывается.

На самом деле 1801ВМ2 выставляет адрес на шину таким каким он есть, а уже конкретное устройство при чтении просто этот бит не учитывает.
Есть в УКНЦ параллельный порт на магистралии ПП, к которому надо обращаться при чтении в том числе и по нечетным адресам.

Но советую посмотреть программу в отладчике UKNCBTL, можно в качестве останова использовать не 1070, а 1000.

Titus 27th February 2012 02:17

Quote:

Originally Posted by Patron (Post 472541)
Вот любопытный тест влияния нечётного PC на результаты выполнения команд

У меня такой, на UKNCBTL такой:
http://s018.radikal.ru/i502/1202/11/d96fe8dc4ef4.png http://s017.radikal.ru/i442/1202/87/505bd71302a7.png

---------- Post added at 01:17 ---------- Previous post was at 01:12 ----------

Блин, точно. Доступ к данным по нечетным адресам ОЗУ сделал правильно, а про выборку команды забыл)

Alex_K 27th February 2012 02:19

Quote:

Originally Posted by Titus (Post 472547)
У меня такой, на UKNCBTL такой:

Ну вот и ошибка в процессоре. Откуда идут прерывания? При словном доступе по нечетному адресу прерывания по 4-му вектору есть у 1801ВМ3, но не у 1801ВМ1 и 1801ВМ2.

---------- Post added at 01:19 ---------- Previous post was at 01:18 ----------

Quote:

Originally Posted by Titus (Post 472547)
Блин, точно. Доступ к данным по нечетным адресам ОЗУ сделал правильно, а про выборку команды забыл)

А чем выборка команд отличается от чтения данных? Используется один и тот же цикл шины.

Patron 27th February 2012 02:23

Quote:

Originally Posted by Alex_K (Post 472550)
А чем выборка команд отличается от чтения данных?

Тем, что эмулируется в другом месте программы эмулятора :)


All times are GMT +4. The time now is 02:46.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.