Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Пожелания и планы по эмулятору Башкирия-2М (http://zx-pk.ru/showthread.php?t=8373)

b2m 8th October 2010 23:06

Quote:

Originally Posted by ZEman (Post 321796)
у меня семёрка 64-битная

А у меня эмулятор 32-битный :)

Quote:

Originally Posted by ZEman (Post 321800)
правда вот размер из фулскрина почемуто всё равно не меняется 640х480 остаётся.

Я так понимаю, запускается в режиме совместимости с XP. Вряд-ли там предлагается большой выбор режимов.

Quote:

Originally Posted by ZEman (Post 321802)
b2m, у тебя через что работает эмулятор ?
через древний direct draw чтоли ?

Через тот, что у тебя в режиме совместимости. Да, программный интерфейс старого direct draw используется (из соображений совместимости со старыми системами), но это ничего не меняет. Какой стоит DirectX, такой и используется. В системе не бывает двух разных версий DirectX.

doorsfan 16th October 2010 22:27

Просьба подправить скорость эмуляции Львова. EMU Version 1.01
http://zx.pk.ru/showthread.php?p=323299#post323299

Doronetty 29th November 2010 03:53

Пришла мысль запустить демку Satisfaction в режиме Спектрума. И... я так и предполагал! В части, где должна звучать цифровая музыка через AY стоит полная тишина! (потом чистоты ради эксперимента запустил ещё пару AY-оцифровок с тем же результатом) :(
Я это не к тому говорю, что эмуляция Спектрума плоха - его можно было бы и вообще не делать, ибо эмуляторов его (включая очень навороченные) - тьма тьмущая. Но вот эмуляция AY - это дело совсем другое, этот чип во многих советских машинах стоит (в том числе и в моей любимой БК-0011М)! Очень прошу обратить внимание на указанную недоработку (советую взять готовую реализацию AY скажем у того же Unreal - там исходники открыты)!

P.S: И о-о-очень надеюсь на доработку экрана БК-0011M - появилась важная информация по времянкам!

DDp 16th January 2011 21:51

Не обязятельно, но хотелось бы...
1) В диалоге открытия файлов запоминать тип(группу) файлов.
2) (магнитофонный диалог) Добавить маски файлов *.bss (бейсик без заголовка), *.bsm (бейсик микрон), *.edm (редактор микрон) в "Data files (*.rk?)". Это тоже, что и *.rk?, просто с другим расширением (см. эмулятор Пыхонина)
С другой стороны, какое расширение давать файлам это, наверное, уже больше религия. Может вынести группы и маски в ini-файл ?
3) добавить в исходнике "EMU Version ... %s", __DATE__ . . . . . (это ж бубль-гум!) ;)

b2m 18th January 2011 11:58

Quote:

Originally Posted by DDp (Post 350401)
Может вынести группы и маски в ini-файл ?

Это уже давно сделано. Файл называется EMU.ext

Doronetty 19th January 2011 13:46

Есть ли планы в ближайшее время подкорректировать времянки экрана БК-0011М? ;) Больно уж охота посмотреть на нормальную работу демок, да душой порадовацца...

b2m 19th January 2011 19:48

Пока таких планов не было.

Jons 8th February 2011 11:54

b2m, есть ли возможность запуска эмулятора с конфигурацией по умолчанию? т.е. например мне нужен постоянно эмулятор Вектора, чтоб не выбирать его постоянно из списка, и ещё вопросик, есть поддержка режима LBA при обращении к образу HDD?

b2m 8th February 2011 13:25

Quote:

Originally Posted by Jons (Post 357283)
b2m, есть ли возможность запуска эмулятора с конфигурацией по умолчанию?

Пока нет, планирую сделать параметр командной строки. На данный момент советую использовать drag&drop, чтобы запускать rom-файлы Вектора. Т.е. из эксплорера файл можно бросить на эмулятор или на ярлык на него. Или указать файл в командной строке (например в FARе удобно ассоциировать эмулятор с расширением rom).

Quote:

Originally Posted by Jons (Post 357283)
есть поддержка режима LBA при обращении к образу HDD?

Есть.

svl 14th March 2011 21:33

В Радио-86РК команды IN и OUT можно использовать вместо LDA и STA для обмена с контроллерами. Например, IN 0A1H вместо LDA 0A001H. В эмуляторе это не работает. Можно ли в конфиге как-то поправить?

b2m 14th March 2011 21:42

Quote:

Originally Posted by svl (Post 366443)
В Радио-86РК команды IN и OUT можно использовать вместо LDA и STA для обмена с контроллерами. Например, IN 0A1H вместо LDA 0A001H. В эмуляторе это не работает. Можно ли в конфиге как-то поправить?

Вместо LDA 0A001H нельзя использовать IN 0A1H. Можно использовать вместо LDA 0A1A1H. В конфиге нужно добавить port.maptomem=1, как это сделано в Mikrosha.cfg. Добавлю во все конфиги (где нужно) в следующей версии.

svl 14th March 2011 21:58

Quote:

Originally Posted by b2m (Post 366446)
Вместо LDA 0A001H нельзя использовать IN 0A1H. Можно использовать вместо LDA 0A1A1H

В общем случае, конечно, нельзя. Но в РАДИО-86 A001 то же самое, что A1A1.
Прописал в конфиг, работает. Спасибо.

Error404 23rd June 2011 15:24

Дмитрий, добавь пожалуйста в конфиг Ориона чип RTL8019AS по адресам F770..F7FF. Накрайняк можно F770..F78F (чтение регистра данных LDIR-ом я пока не использую).

b2m 23rd June 2011 23:34

Quote:

Originally Posted by Error404 (Post 395028)
Дмитрий, добавь пожалуйста в конфиг Ориона чип RTL8019AS по адресам F770..F7FF. Накрайняк можно F770..F78F (чтение регистра данных LDIR-ом я пока не использую).

В смысле, сделать ещё один конфиг и добавить в архив на сайте?
Или ты для себя? :)
Ты, вроде, планировал какие-то заморочки с аппаратным сбросом. Я, честно-говоря, не собирался добавлять такие фичи. А добавить F770..F78F не сложно, но это будет "стандартная" раскладка портов.
Я хотел сначала подправить поиск tap-адаптера, чтобы его не надо было в конфиге указывать (чтобы по-умолчанию брал первый попавшийся tap-адаптер), но всё руки не доходят...

Error404 24th June 2011 00:52

Quote:

Originally Posted by b2m (Post 395124)
В смысле, сделать ещё один конфиг и добавить в архив на сайте?
Или ты для себя? :)
Ты, вроде, планировал какие-то заморочки с аппаратным сбросом. Я, честно-говоря, не собирался добавлять такие фичи. А добавить F770..F78F не сложно, но это будет "стандартная" раскладка портов.
Я хотел сначала подправить поиск tap-адаптера, чтобы его не надо было в конфиге указывать (чтобы по-умолчанию брал первый попавшийся tap-адаптер), но всё руки не доходят...

В архив на сайте. Для себя я оттуда и скачаю. :)
Буду проверять свои поделки на двух движках, а выложенное на сайте может и еще кому-то пригодится. Сброс по ловушке записи 0FDh в F770 можно и не делать - достаточно если RTL будет сбрасываться при включении питания и кнопке reset, "стандартная" раскладка портов для начала тоже потянет.

А вот про первый попавшийся tap-адаптер - это только если в конфиге явно не указан tap-адаптер. У меня например их несколько и Орион висит на втором. Т.к. на первом уже задолго до эмуляторов висит OpenVPN.

b2m 24th June 2011 14:33

Quote:

Originally Posted by Error404 (Post 395155)
В архив на сайте. Для себя я оттуда и скачаю.

Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.

З.Ы. Кстати, ты бы не мог выложить текущие бинарники uIP (образ диска), чтобы я тоже посмотрел на это хозяйство под Орионом? А то мне лень качать и разбираться с Hitech-C и MyZ80.

Error404 24th June 2011 21:18

Quote:

Originally Posted by b2m (Post 395260)
Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.

З.Ы. Кстати, ты бы не мог выложить текущие бинарники uIP (образ диска), чтобы я тоже посмотрел на это хозяйство под Орионом? А то мне лень качать и разбираться с Hitech-C и MyZ80.

Там бинарников пока только telnetd. Уже лежит у меня на страничке и на форуме- там загрузочный образ, в нем в User 1 вместе с коммуникационными программами и лежит telnetd.com.
Сейчас мучаю вебсервер, но пока больше оно меня мучает. :)

---------- Post added at 20:18 ---------- Previous post was at 19:44 ----------

Quote:

Originally Posted by b2m (Post 395260)
Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.

Чегой-то не работает. Толи я не разобрался с конфигом. В ifname надо писать название TAP-соединения?

b2m 25th June 2011 00:42

Quote:

Originally Posted by Error404 (Post 395322)
Чегой-то не работает. Толи я не разобрался с конфигом. В ifname надо писать название TAP-соединения?

Посмотрел исходники с твоего сайта: у меня не был реализован бит сброса в регистре запросов. Теперь пингуется. А на команды telnetd не реагирует (хотя кое-что и выдал в начале).

BYTEMAN 25th June 2011 00:54

Только что увидел, что есть эмуляция Арго :) А фиолетовый цвет в цветном режиме - это взято на основании чего? И, кстати, может ли так быть, что у Арго аналогичная реализация цвета, как и в Юниоре?

Error404 25th June 2011 11:53

2 Attachment(s)
Quote:

Originally Posted by b2m (Post 395349)
Посмотрел исходники с твоего сайта: у меня не был реализован бит сброса в регистре запросов. Теперь пингуется. А на команды telnetd не реагирует (хотя кое-что и выдал в начале).

что-то у меня icmpecho не запускается.
у тебя регистры identify правильно возвращаются?

Code:

        LD      A,021H       
        LD      (P0_CMD),A        ; Stop\Abort, Set Reg Page 0, release RSTDRV pin (reset off)
        LD        HL, TITLE2       
        CALL        MSG                ; show message acts as delay for RTL8019 init
        LD        HL,(P0_RBCR0)
        LD        A, H
        CP        70H                ; RTL8019 specific constant
        RET        NZ                ; RTL8019 not found
        LD        A, L
INIT0:        CP        50H                ; RTL8019 specific constant
        RET        NZ                ; RTL8019 not found



telnetd таки - да, работает странно: весь демон уходит в астрал (перестает пинговаться) по первому нажатию кнопки в telnet-клиенте.
Странно, но у меня такого не происходит - работает в обе стороны.

Под VirtualBox (на "честной" винде не проверял) emu при переключении пропорций в 2:1 такие корки мочит... :) Виндовозное окно остается где и было (маленькое в центре экрана, его можно двигать но картинки в нем нет), а директиксное - в левом верхнем углу экрана (без рамки, повер всех окон шпарит, двигать его понятно нельзя и портится канвас всех окон которые оказались под ним). На ПринтСкрин оно не попадает: показать не могу.

b2m 26th June 2011 00:51

Quote:

Originally Posted by BYTEMAN (Post 395351)
Только что увидел, что есть эмуляция Арго :) А фиолетовый цвет в цветном режиме - это взято на основании чего? И, кстати, может ли так быть, что у Арго аналогичная реализация цвета, как и в Юниоре?

Насчёт цвета - пока не ясно. К сожалению, пока нет ни одной программы для Арго. Вот если бы кто-то нашёл кассету, которая была в стандартной поставке, там был эмулятор ZX-Spectrum, вот тогда бы и с цветом яснее стало, и с портами. Агро достаточно сильно от Юниора отличается, в железном плане.

Quote:

Originally Posted by Error404 (Post 395382)
у тебя регистры identify правильно возвращаются?

Это откуда кусок кода? В etherdev.c такого нет. RCBR это же просто счётчик, или он после сброса имеет указанное в коде значение?

Quote:

Originally Posted by Error404 (Post 395382)
Под VirtualBox (на "честной" винде не проверял) emu при переключении пропорций в 2:1 такие корки мочит... :) ... На ПринтСкрин оно не попадает: показать не могу.

Не надо показывать, я видел :) Такое происходит, если директ-х-шное окно выходит за пределы виртуального экрана (т.е. достаточно окно эмулятора за границу десктопа подвинуть). Возможно, это фича виртуализации, как с ней бороться - я не знаю.

---------- Post added 26.06.2011 at 00:51 ---------- Previous post was 25.06.2011 at 23:40 ----------

Добавил identify, icmpecho заработало.

---------- Post added at 00:51 ---------- Previous post was at 00:51 ----------

Добавил identify, icmpecho заработало.

Error404 26th June 2011 10:12

Quote:

Originally Posted by b2m (Post 395460)
Это откуда кусок кода? В etherdev.c такого нет. RCBR это же просто счётчик, или он после сброса имеет указанное в коде значение?
Добавил identify, icmpecho заработало.

Это я добавил, отсебятинка. :) В etherdev.c меня заинтриговало такое назначение регистров, описывающих буфер отправки и кольцо приема:
Code:

#define ETH_TX_PAGE_START  0x40    /* 0x4000 Tx buffer is  6 * 256 = 1536 bytes */
#define ETH_RX_PAGE_START  0x46    /* 0x4600 Rx buffer is 26 * 256 = 6656 bytes */
#define ETH_RX_PAGE_STOP  0x60    /* 0x6000 */

Оно конечно работает, но нафига? Почему не от нуля? Памяти то 16к.
И самое интересное - все писатели (я с полдюжины проектов на RTL пересмотрел на разных контроллерах) копируют к себе такую инициализацию (у всеx функция init практически один-в-один).

Error404 7th July 2011 16:03

В-общем, httpd в EMU.EXE не заработало тоже (как и telnetd).
Может, посмотришь? Мыслей пока нет.

b2m 7th July 2011 19:59

Quote:

Originally Posted by Error404 (Post 397789)
В-общем, httpd в EMU.EXE не заработало тоже (как и telnetd).
Может, посмотришь? Мыслей пока нет.

Могу предложить новый метод отладки всего этого хозяйства.
Я скрестил исходники telnet+uIP с моими исходниками эмуляции rtl8019as. И отлаживал уже в IDE. :)

Как и следовало ожидать, ничего не заработало. Кроме того, грузит процессор чуть ли не на 100%, но это, в принципе, понятно. Стал копать, выяснил, что в определённый момент отправка/приём деактивируется и больше не активируется. И момент этот - в самом конце приёма пакета. Если, однако, после приёма происходит отправка, то отправка/приём снова реанимируется. Получается, если приняли пакет, и ничего не отправили, то вилы.

А получается это, потому-что включение страницы регистров ты сделал так:
Code:

#define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6)|RD2|STP)
А в оригинале было так:
Code:

#define ETHERDEV_SELECT_REG_PAGE(page)                                      \
          do                                                                \
          {                                                                \
              etherdev_reg_write(CR, etherdev_reg_read(CR) & ~(PS1 | PS0)); \
              etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
          } while(0)

Поэтому, после того, как я сделал:
Code:

#define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6) | (ETHERDEV_REG_READ(CR) & 0x3F))
всё заработало и у меня.

Error404 7th July 2011 20:54

Quote:

Originally Posted by b2m (Post 397836)
Могу предложить новый метод отладки всего этого хозяйства.
Я скрестил исходники telnet+uIP с моими исходниками эмуляции rtl8019as. И отлаживал уже в IDE. :)

Как и следовало ожидать, ничего не заработало. Кроме того, грузит процессор чуть ли не на 100%, но это, в принципе, понятно. Стал копать, выяснил, что в определённый момент отправка/приём деактивируется и больше не активируется. И момент этот - в самом конце приёма пакета. Если, однако, после приёма происходит отправка, то отправка/приём снова реанимируется. Получается, если приняли пакет, и ничего не отправили, то вилы.

А получается это, потому-что включение страницы регистров ты сделал так:
Code:

#define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6)|RD2|STP)
А в оригинале было так:
Code:

#define ETHERDEV_SELECT_REG_PAGE(page)                                      \
          do                                                                \
          {                                                                \
              etherdev_reg_write(CR, etherdev_reg_read(CR) & ~(PS1 | PS0)); \
              etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
          } while(0)

Поэтому, после того, как я сделал:
Code:

#define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6) | (ETHERDEV_REG_READ(CR) & 0x3F))
всё заработало и у меня.

Я, помнится, долго думал над глубоким смыслом этих строк в исходнике, и поскольку такое задание регистров не следует из спецификаци, и более того - далеко не во всех драйверах используется, то "выкинул лишнее". :)

Ладно, добавим.

b2m 7th July 2011 21:43

Quote:

Originally Posted by Error404 (Post 397843)
Я, помнится, долго думал над глубоким смыслом этих строк

А смысл очень прост - нужно изменить только старшие два бита (номер страницы), а вот другие менять не надо. В оригинале, правда, это сделано слишком уж оригинально :)

---------- Post added at 21:40 ---------- Previous post was at 21:38 ----------

Конечно, если известно, какие младшие биты установлены, то можно было бы и обойтись без чтения регистра CR. Но тут - общий случай.

---------- Post added at 21:42 ---------- Previous post was at 21:40 ----------

Например, можно запоминать последний вывод в CR в какой-нибудь переменной.

---------- Post added at 21:43 ---------- Previous post was at 21:42 ----------

Но какой смысл? Если эта переменная и регистр CR фактически одно и то-же :)

Error404 7th July 2011 22:10

Quote:

Originally Posted by b2m (Post 397850)
А смысл очень прост - нужно изменить только старшие два бита (номер страницы), а вот другие менять не надо. В оригинале, правда, это сделано слишком уж оригинально :)

---------- Post added at 21:40 ---------- Previous post was at 21:38 ----------

Конечно, если известно, какие младшие биты установлены, то можно было бы и обойтись без чтения регистра CR. Но тут - общий случай.

---------- Post added at 21:42 ---------- Previous post was at 21:40 ----------

Например, можно запоминать последний вывод в CR в какой-нибудь переменной.

---------- Post added at 21:43 ---------- Previous post was at 21:42 ----------

Но какой смысл? Если эта переменная и регистр CR фактически одно и то-же :)


Ну и как тебе Web-сервер? По-моему, мощно! :)
Тут и сервер, и стек, и CGI, и файловая система (вместе с файлами) - и все в 18кб. А если на экран ничего не выводить, то и в 16Кб можно влезть. И ведь это не ассемблер, а С!

b2m 7th July 2011 23:12

Quote:

Originally Posted by Error404 (Post 397867)
Ну и как тебе Web-сервер? По-моему, мощно! :)

А вот его я и не пробовал, ограничился telnet-ом. Ты уже собрал бинарники с обещанным исправлением?

Error404 8th July 2011 00:20

Quote:

Originally Posted by b2m (Post 397883)
А вот его я и не пробовал, ограничился telnet-ом. Ты уже собрал бинарники с обещанным исправлением?

Да. Пересобрал - теперь все работает. :v2_thumb:
И перезалил на форум в те же сообщения что и до того.

b2m 8th July 2011 00:36

Да, теперь работает, только медленно :)

Error404 8th July 2011 09:28

Quote:

Originally Posted by b2m (Post 397895)
Да, теперь работает, только медленно :)

Надо эмулировать пентиум III - он ускоряет интернет. :)

Error404 23rd July 2011 12:59

1 Attachment(s)
Чегой-то у меня EMU не видит заведомо присутствующих файлов (см. скриншот)

b2m 23rd July 2011 16:21

Я тоталом не пользуюсь. Как запускал? Через File/Open, drag&drop или тотал как-то через командную строку запускает?

Error404 24th July 2011 00:41

Quote:

Originally Posted by b2m (Post 401448)
Я тоталом не пользуюсь. Как запускал? Через File/Open, drag&drop или тотал как-то через командную строку запускает?

Через File/Open
ТС приведен только для иллюстрации, что этот файл в том каталоге есть.

b2m 24th July 2011 02:26

Не знаю. Попробуй с другого каталога, раздела, переименовать файл или другой снапшот открыть, в конце концов. Вообще странно, что в заголовке окна имя файла не показано (перед минусом). Пока не понятно, с чем связано.

---------- Post added at 02:26 ---------- Previous post was at 02:16 ----------

Скачал именно этот файл - у меня открывается нормально. Может у тебя антивирус дурит? Попробуй открыть файл в любом hex-редакторе.

Error404 24th July 2011 13:27

Quote:

Originally Posted by b2m (Post 401540)
Не знаю. Попробуй с другого каталога, раздела, переименовать файл или другой снапшот открыть, в конце концов. Вообще странно, что в заголовке окна имя файла не показано (перед минусом). Пока не понятно, с чем связано.

---------- Post added at 02:26 ---------- Previous post was at 02:16 ----------

Скачал именно этот файл - у меня открывается нормально. Может у тебя антивирус дурит? Попробуй открыть файл в любом hex-редакторе.

Антивируса на этой машинке нет, не устанавливался никакой.
Другое дело, что сама машинка - виртуальная (я на Линуксе сейчас сижу, а виндовозное ПО запускаю из-под Oracle VBox), в которой проставлен WinXP.

С другой стороны, Спектакулятор этот же самый файл отлично открывает, и ТС и прочее системное. Хотя казалось бы - и тот и другой должны делать одинаковое - FileOpen(filename, дыр-быр), ибо ничего там больше не сделаешь. Т.е. идти через одни и те же вызовы API винды на том же самом железе.

С третьей стороны, Unreal к примеру - вообще не запускается. :)

b2m 24th July 2011 15:20

А драйв J у тебя отдельная NTFS-партиция, или виртуальный драйв? Нет ли заморочек с маленькими/большими буквами? Я понимаю, что это бред, но чем чёрт не шутит?

Error404 24th July 2011 17:50

Quote:

Originally Posted by b2m (Post 401597)
А драйв J у тебя отдельная NTFS-партиция, или виртуальный драйв? Нет ли заморочек с маленькими/большими буквами? Я понимаю, что это бред, но чем чёрт не шутит?

драйв J - это файловая система Linux, которая экспортируется в винду при помощи драйверов VBOX и представляется под виндой как сетевой драйв (smb-устройство).

На диске C: этот же файл (zxoom98a.SNA) находится эмулятором, но пишет "Unknown file format" (в заголовке окна перед "-" опять же пусто). Может, просто снапшоты не поддерживаются?

Версия 1.01, от 24.06.2011

b2m 24th July 2011 21:57

Quote:

Originally Posted by Error404 (Post 401645)
драйв J - это файловая система Linux, которая экспортируется в винду при помощи драйверов VBOX и представляется под виндой как сетевой драйв (smb-устройство).

Нечто такое я и подозревал. У тебя тотал пишет J:\Temp, скорее всего именно так папка и называется, а эмулятор пытается открыть в каталоге J:\TEMP

Quote:

Originally Posted by Error404 (Post 401645)
На диске C: этот же файл (zxoom98a.SNA) находится эмулятором, но пишет "Unknown file format" (в заголовке окна перед "-" опять же пусто). Может, просто снапшоты не поддерживаются?

Версия 1.01, от 24.06.2011

Да, поддержка SNA есть только в последней версии 08.07.2011

Error404 25th July 2011 00:15

Quote:

Originally Posted by b2m (Post 401734)
Нечто такое я и подозревал. У тебя тотал пишет J:\Temp, скорее всего именно так папка и называется, а эмулятор пытается открыть в каталоге J:\TEMP

Ну да. Папка TEMP, в корне ФС на линуксе. И этот же каталог TEMP в корне ФС, но под виндой. ФС монтируется под виндой от корня. C точки зрения винды - это обычная виндовозная ФС, подмонтированная к символу диска J. Любая виндовозная утилита в каталоге TEMP открывает файл с образом (снапшотом).
На С: в корне создавал точно такой же каталог (TEMP). Почему эмуль отрабатывает J: и С: по-разному - это ХЗ.


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

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