User Tag List

Страница 9 из 120 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 1199

Тема: Эмулятор УКНЦ - EmuStudio

  1. #81

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

    По умолчанию

    Попробуй в 0.03b. Там есть маппинг памяти PPU, а так же исправлена ошибка отсутсвия поддержки FPU-инструкций, из-за чего бейсик тоже вешался.

  2. #82

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А все довольно просто. В инструкции все правильно сказано насчет чтения-модификации-записи. А вот в описании на процессор 1801ВМ2 очень существенный момент упустили (его нет и в техописании, которое выкладывали Вы). А этот тонкий момент состоит в том, что по записи в источник словные и байтовые команды отличаются. Команд этих всего три - MOV(B), CLR(B) и MFPS.
    Провел кое-какие исследования на реале. Оказалось, что вы совершенно правы:
    Код:
    Сравнение времени выполнения байтовых и словных команд на CPU и PPU:
    
    Мнемоника-1     CPU     PPU    Циклы	Мнемоника-2     CPU     PPU	Циклы
    ------------------------------------------------------------------------------
    
    MOV Rn,(Rn)	33.13	36	W	MOVB Rn,(Rn)	40.62	52	RMW
    	
    CMP Rn,(Rn)	27.90	40	R	CMPB Rn,(Rn)	27.90	40	R
    BIT Rn,(Rn)	27.90	40	R	BITB Rn,(Rn)	27.90	40	R
    BIC Rn,(Rn)	40.62	56	RMW	BICB Rn,(Rn)	40.62	52	RMW
    BIS Rn,(Rn)	40.62	56	RMW	BISB Rn,(Rn)	40.62	52	RMW
    
    XOR Rn,(Rn)	40.62	56	RMW
    ADD Rn,(Rn)	40.62	56	RMW
    SUB Rn,(Rn)	40.62	56	RMW
    				
    CLR (Rn)	33.13	36	W	CLRB (Rn)	40.62	52	RMW
    COM (Rn)	40.62	56	RMW	COMB (Rn)	40.62	52	RMW
    INC (Rn)	40.62	56	RMW	INCB (Rn)	40.62	52	RMW
    DEC (Rn)	40.62	56	RMW	DECB (Rn)	40.62	52	RMW
    NEG (Rn)	40.62	56	RMW	NEGB (Rn)	40.62	52	RMW
    TST (Rn)	27.90	40	R	TSTB (Rn)	27.90	40	R
    ROL (Rn)	40.62	56	RMW	ROLB (Rn)	40.62	52	RMW
    ROR (Rn)	40.62	56	RMW	RORB (Rn)	40.62	52	RMW
    ASR (Rn)	40.62	56	RMW	ASRB (Rn)	40.62	52	RMW
    ASL (Rn)	40.62	56	RMW	ASLB (Rn)	40.62	52	RMW
    ADC (Rn)	40.62	56	RMW	ADCB (Rn)	40.62	52	RMW
    
    					MFPS (Rn)	40.62	52	RMW
    SWAB (Rn)	40.62	56	RMW
    SXT (Rn)	33.13	36	W
    Итого мы имеем результат - в нашем процессоре как класс отсутствуют циклы байтовой записи в память. Вместо них идут циклы RMW. Кстати, если вы заметили, цикл RMW PPU для словных и байтовых команд отличается на 4 такта из-за того, что ОЗУ PPU 8-битное, и слова записываются в два приема по 8 бит.

  3. #83

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Попробуй в 0.03b. Там есть маппинг памяти PPU, а так же исправлена ошибка отсутсвия поддержки FPU-инструкций, из-за чего бейсик тоже вешался.
    Уже значительно лучше, но символ в слове "Circle" также пропадает. Да и во время прохождения теста довольно много ошибок.

    Кстати по поводу пропадающего символа. В UKNCBTL он стал пропадать после того, как была причесана обработка прерываний. Раньше фактически было так - обработано прерывание, затем команда. Потом стало так, как должен обрабатывать процессор - сначала все незамаскированные запросы на прерывание, а затем, когда не осталось запросов - уже команда.

    В УКНЦ при выводе на экран (канал 0) есть ошибка, связанная с переполнением буфера. Может возникать ситуация, когда производится обработка очереди (полной) и возникает запрос на прерывание канала 0. Я этот момент уже описывал. Ярко он проявился на программе от Patron по подсчету CPS, проявление было как на реальной машине, так и на эмуляторе.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	TESTGR.JPG 
Просмотров:	429 
Размер:	38.9 Кб 
ID:	32740  

  4. #84

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Уже значительно лучше, но символ в слове "Circle" также пропадает. Да и во время прохождения теста довольно много ошибок.
    Может у тебя турбобейсик не такой? У меня ниче не пропадает)

    Скрытый текст



    [свернуть]

  5. #85

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Может у тебя турбобейсик не такой? У меня ниче не пропадает)
    Так же пропадает, правда не всегда, так 50 на 50. Попробуй выполни какой-нибудь короткий тест, например Colors Demo, и выйди после этого в меню нажатием любой клавиши.

  6. #86

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Так же пропадает, правда не всегда, так 50 на 50. Попробуй выполни какой-нибудь короткий тест, например Colors Demo, и выйди после этого в меню нажатием любой клавиши.
    А, да. Может не 50/50, но за несколько раз один раз выпала. Причем одна и та же буква. На UKNCBTL та же выпадает? Интересно, значит у нас у боих неправильно что-то эмулируется)

  7. #87

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    148
    Поблагодарили
    79 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Т.е. наличие запроса на прерывание (при разрешённых прерываниях) ещё не означает, что запрос будет обслужен - нужно проверить, сколько команд назад этот запрос был выставлен.

  8. #88

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    У реальной обработки прерываний есть ещё один небольшой аспект - запрос прерывания начинает обслуживаться строго через одну команду после его выставления.

    Т.е. наличие запроса на прерывание (при разрешённых прерываниях) ещё не означает, что запрос будет обслужен - нужно проверить, сколько команд назад этот запрос был выставлен.
    Речь у меня шла немного про другое, про одновременное выставление запросов на прерывание несколькими устройствами, и блок обработки прерываний должен сперва обработать все незамаскированные прерывания, а уж потом исполнять команду.

    Но вопрос про задержку поставлен совершенно правильно. В UKNCBTL такой задержки нет. Если по каналу 0 что-то передается для ПП, то после записи со стороны ЦП, со стороны ПП сразу же возникает запрос на прерывание, а не должно, действительно, только при исполнении следующей команды. Аналогично, если байт был прочитан со стороны ПП, то со стороны ЦП требование для записи очередного байта должно возникнуть не сразу.
    Тут скорее всего такое дело, что процессор читает регистр запросов на прерывания во время исполнения команды. Поэтому установка бита разрешения прерывания вызовет прерывание не после этой команды, а после следующей. Из-за этого и советуют бит разрешения прерывания очищать при запрещенных прерываниях, чтобы не возникало ситуации ошибки приема адреса вектора прерывания.

  9. #89

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

    По умолчанию

    Обновил версию до 0.04a.
    Изменения такие относительно 0.03a:
    Сделан маппинг памяти PPU, поддержка FPU-инструкций, исправлены циклы Write->RMW для байтовых команд (спасибо Alex_K), сделана смена палитры RGB->GRB->Black/White по клавише '~', клавиша АР2 перенесена с '~' на 'ESC'.

    Теперь работает Турбобейсик, корректно работает графика в 'спрайтовом режиме' и заливка там, где она не работала.
    Однако КЦГД стал ругаться в консоли при нажатии '<--', когда стирать в строке уже нечего. Появилось это после изменения циклов байтовых команд с W на RMW. КЦГД так же работает, но просто ругается.

    ---------- Post added at 18:41 ---------- Previous post was at 18:31 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Однако КЦГД стал ругаться в консоли при нажатии '<--', когда стирать в строке уже нечего. Появилось это после изменения циклов байтовых команд с W на RMW. КЦГД так же работает, но просто ругается.
    Понятно, теперь он читает регистр, в который раньше только писал. Ниче страшного)

  10. #90

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Обновил версию до 0.04a.
    Значительно лучше, даже буковка почти перестала пропадать.
    Цитата Сообщение от Titus Посмотреть сообщение
    Однако КЦГД стал ругаться в консоли при нажатии '<--', когда стирать в строке уже нечего. Появилось это после изменения циклов байтовых команд с W на RMW. КЦГД так же работает, но просто ругается.
    Понятно, теперь он читает регистр, в который раньше только писал. Ниче страшного)
    Даже могу сказать почему. Ругаться будет и после нажатия неправильной комбинации, которую не поддерживает SL. Просто SL в этом случае выдает звуковой сигнал управляющим кодом 7, а КЦГД сам пищать не умеет, он просто дает клавиатуре МС7004 команду подать звуковой сигнал. Общение с клавиатурой сделано через 1801ВП1-065. У неё регистры данных и читаются и пишутся в обоих направлениях с выдачей RPLY, просто в приемнике запись уходит в никуда, а в передатчике по чтению читается адрес вектора прерывания приемника.

Страница 9 из 120 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - UKNCBTL
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 1114
    Последнее: 08.01.2025, 01:15
  2. PS/2 клавиатура в УКНЦ
    от balu_dark в разделе ДВК, УКНЦ
    Ответов: 83
    Последнее: 10.01.2021, 10:51
  3. Как проверить УКНЦ и КМД ? Help
    от Andrey_Ak в разделе ДВК, УКНЦ
    Ответов: 37
    Последнее: 23.07.2020, 15:50
  4. УКНЦ и шина МПИ
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 18
    Последнее: 14.03.2014, 14:30
  5. Продаю УКНЦ
    от Gryphon в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 01.04.2009, 10:22

Ваши права

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