![]() |
1 Attachment(s)
Пока только код от Patron
http://zx-pk.ru/attachment.php?attac...1&d=1359811007 |
Quote:
---------- Post added at 17:09 ---------- Previous post was at 17:01 ---------- Quote:
DIR/FU/BL/VOL DD: А потом: BOOT DD: ---------- Post added at 17:17 ---------- Previous post was at 17:09 ---------- Вообще, насколько я понимаю - разница в работе с последовательным портом между эмуляторами ДВК и УКНЦ в настоящий момент только в том, что в эмуляторе ДВК в принципе невозможен оверран. Я давал уже раньше здесь код, позволяющий имитировать работу С2 по кабелю с квитированием ( т.е. в принципе без потери байтов ) - пора этот код испытать. |
Quote:
Думаю, этот тест можно считать пройденным. http://img-fotki.yandex.ru/get/6424/..._7834a066_orig |
beta 38
Beta 38
- Палитра в 128 цветов, из-за этого размер файла скриншота увеличился в два раза - Интегрирован код работы с COM-портом и код реализации сети через COM-порт от Vamos; работа Стык С2 явно улучшилась; но сеть пока практически не работает - Для настройки COM-портов сделан диалог редактирования структуры DCB - Исправление ошибок http://ukncbtl.googlecode.com/files/...beta38-exe.zip Благодаря лучшей реализации Стык С2 появилась возможность загрузки и работы с HX Server, связь двух программ на одном PC выполняется через виртуальные порты com0com. Последняя версия HX Server by Patron: http://zx.pk.ru/showthread.php?p=569515#post569515 Инструкции по настройке: http://zx-pk.ru/showpost.php?p=564797&postcount=160 Запускаем HX Server. После этого запускаем эмулятор, в Settings указываем правильное название и настройки порта. В главном меню УКНЦ выбираем загрузку со Стык С2. Ожидаем загрузки системы. Выражаю особую благодарность тем, кто активно помогал и содействовал появлению этой версии: Vamos, Patron, Titus и конечно hobot. |
У меня сложилось впечатление, что в коде посылки BREAK можно обойтись вообще без Sleep(15)
Code:
if (!(m_Port176574 & 01)) |
UkncComSender 1.2
Поскольку утилита оказалась востребованной, сделал небольшое улучшение.
Теперь в командной строке можно задать опцию -dcb и указать к ней параметры структуры DCB, например: UkncComSender.exe COM8 VERT.SAV -dcb "rts=on" Code:
UkncComSender Utility v1.2 by Nikita Zimin [Feb 3 2013 19:57:55]http://ukncbtl.googlecode.com/files/UkncComSender.zip |
nzeemin, вот с таким ini крашится, не знаю, нужно ли что-то поправлять, без него-то работает =)
Скрытый текстCode:
[UKNCBTL][свернуть] |
Quote:
В коде подключения картриджа у меня ошибка -- проверяет на INVALID_HANDLE_VALUE, а должно проверять на 0. |
2 Attachment(s)
Помучал еще код эмулятора, добился стабильной загрузки TU58, теперь загрузка из сети проходит до стадии загрузки системы а дальше опять облом с переполнением :( .
http://zx-pk.ru/attachment.php?attac...1&d=1360080317 http://zx-pk.ru/attachment.php?attac...1&d=1360080317 |
Quote:
Code:
#include <deque>Кстати - при переполнении в регистре данных остаётся старый байт, а не появляется новый. |
Quote:
|
В любом случае - принятый байт может попасть в регистр данных только если бит готовности сброшен.
Исходник, который я редактировал - содержал ошибку: Code:
BOOL CFirstMemoryController::NetworkInput(BYTE inputByte)Code:
BOOL CFirstMemoryController::NetworkInput(BYTE inputByte) |
2 Attachment(s)
Quote:
http://zx-pk.ru/attachment.php?attac...1&d=1360084655 http://zx-pk.ru/attachment.php?attac...1&d=1360084655 |
На скорости 57600 при 12 битах на посылку порт СА получает 4800 байтов в секунду, а значит новый байт приходит через каждые 208'000 наносекунд.
|
Code:
Каждый фрейм равен 1/25 секунды = 40 мс = 20000 тиков, 1 тик = 2 мкс. |
Если 1 мс это 500 тиков, то в порт С2 поступает по одному байту каждые 573 тика ( а не каждые 416 тиков), а в порт СА по одному байту каждые 104 тика ( на не каждые 64 тика ).
|
Patron, Вы абсолютно правы, просто расчеты не мои и делилось не на 12 бит а на 8, но это сути дела не меняет. Попробую еще раз объяснить, ситуация аналогична как с НХ сервером при работе со сжатием, только в данном случае на мой взгляд почему-то кодом эмулятора процессора долго обрабатывается прерывание или что-то еще. Т.е. на 104 тика отведенные для чтения из регистра процессору дается 104*16 тиков, а вот успеет ли выполнится тот или иной набор команд вопрос, видимо не всегда успевает.
|
Quote:
Сколько команд обработчика прерывания порта СА успевает выполниться между байтами ? |
Quote:
На второй вопрос у меня пока тоже нет ответа :( |
Quote:
Имеющиеся тайминги команд основаны на таймингах команд БК и несколько изменены, с тем чтобы время выполнения команд по тестам примерно совпадало с реалом. Конкретику можно посмотреть в emubase/Processor.cpp. Например, простейшие операции регистр-регистр занимают 11 тактов. |
Quote:
|
Quote:
Если нужно получить в логе трассу команд, можно в конец CProcessor::FetchInstruction() вставить примерно такой блок: Code:
#if !defined(PRODUCT)---------- Post added at 00:10 ---------- Previous post was at 00:05 ---------- Quote:
Если хочется видеть по конкретному коду сколько тактов занимают команды -- можно смотреть или логировать в конце CProcessor::Execute() на выходе из функции CProcessor::CommandExecution() сколько прописано в m_internalTick -- это и будет время выполнения команды. Чтобы замедлить/ускорить процессор можно либо в CMotherboard::SystemFrame() изменить количество вызовов SYSTEMFRAME_EXECUTE_CPU и SYSTEMFRAME_EXECUTE_PPU, либо в коде процессора изменять m_internalTick. |
Т.е. общего тактирования на процессор нет? так чтобы в одном месте подправить.
И еще не понятно сколько времени отводится для выполнения прерывания VIRQ, т.е. процессор вроде как ни каких команд не выполняет но должен сохранить много чего в стеке кажется. |
Quote:
По поводу планируемых доработок -- я бы хотел от вас видеть список хотелок. У меня планов ещё много, но я с ними не тороплюсь. |
Quote:
|
nzeemin, посмотрел новый билд. Не понравилась смена курсора на кнопках, имхо лучше подсвечивать сами клавиши. Было бы неплохо иметь хоткеи на load/save state. Да ещё play/pause на Break для откладки повесить.
|
Quote:
Гоняю 38 версию - впечатления самые положительные в целом, особенно в плане флопов - я не знаю правили там что то или нет, но работают лучше чем когда либо. Глюк что некоторые приложения с харда отказываются дискеты видеть, но тут такая вещь - я на реальной машинке столкнулся с этим, иногда без всякого повода выскакивает ошибка, а повторный запрос может сработать 50\50 (в эмуляторе почти так-же). Картинки чётко сохраняет вроде проверил в папку эмулятора (!) Присоединяюсь к Vamos - полноэкранный режим (Screen Mode 5 - почти оно) (по поводу других прочих версий (QT,SDL) я действительно мог что-то и неправильно написать, поскольку писал с чужих слов-впечатлений - сам пользуюсь и интересуюсь (пока) только Win32 версией) |
А по RT11DSK сюда баги писать? А то у меня она крэшится когда в "rt11dsk l" я ей пихаю образ не дискетки, а винта =)
|
Quote:
Code:
Disk image commands: |
Да, хелп-то я сообразил посмотреть, потому и засомневался, постить ли...
|
Quote:
|
Quote:
Или давай по конкретным проблемам -- что не получается. |
Quote:
Вот это и не получается, жму h жму другие команды, а в ответ тишина. |
Quote:
h<Enter> -- даёт хелп Если действительно всё так плохо -- засними скринкаст чтоли и в меня брось. Плюс конфигурация системы. |
Quote:
Что должно входить в конфигурацию системы и как ее получить? |
nzeemin, извините если отнял ваше время, все работает, пора мне отдыхать,
только щаз заметил в самом низу строчку в которой надо вводить, раньше тыкал в окне выше. |
Quote:
Кстати, если есть пожелания по отладочным окнам -- велкам! |
Quote:
|
SAVE_STATE для Knight (2-3-4 уровни)
1 Attachment(s)
В приложенном архиве сохранения из игры Knight (2-3-4 - уровни).
Записывались и проверялись для версии эмулятора beta38. Подробности Скрытый текстПо счёту на картинках видно, что этот забег был ради прохождения, а не ради счёта. Целью взять все бонусы и убить всех врагов - набирая максимальный счёт не ставилась. Файл в архиве:2level.uknc http://savepic.ru/4036054.png Ничего сложного - новые монстры появляются только. Файл в архиве:2.5level.uknc http://savepic.ru/4037078.png Во втором же, только ближе к финалу. Файл в архиве:3level.uknc http://savepic.ru/4008406.png Начало 3-го уровня, его стоит пройти самому что-бы понять что будет поджидать тебя дальше. Файл в архиве:3level_FINALMONSTR.uknc http://savepic.ru/4000214.png Финальный монстр 3-го уровня. Жук - очень колоритный персонаж(монстр). Файл в архиве:4level.uknc http://savepic.ru/3999190.png 4-й уровень, первый по настоящему сложный для прохождения, но миновать два перекрёстных обстрела всё же можно. Задача максимум - пройти без потери попыток. [свернуть] Запускать в выше указанной версии UKNCBTL. используя функцию Load State. http://savepic.ru/4041174.png На всякий случай, надо и управление напомнить: F1(K1) - включение\отключение паузы F2(K2) - три режима звука последовательно Если во время игры взять бонус "Ферзь" и после появления счётчика времени включить и отключить паузу фон продолжит двигаться при замерших монстрах. Загружаем, пробуем играть. |
А можно ли сделать так, чтобы окно эмулятора было не с фиксированным размером, а изменяемым, его максимизированный статус мог сохраняться, а изображение от УКНЦ центрировалось в окне?
|
| All times are GMT +4. The time now is 02:55. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.