User Tag List

Показано с 1 по 10 из 1102

Тема: Emu80 v.4

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

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С орловским монитором новая версия EMU80 читает и пишет и по I/O, и по R/W, причем как в кодах (т.е в формате RKS), так и в звуках (т.е в формате WAV). С ленинградским монитором 2.7 и 3.3 (в обоих заглушены кодом C9 входы CEDF) читает и пишет только в кодах (т.е в формате RKS). Со звуками работать отказывается. Эмулятор EMU от b2m с тем же, причем оригинальным монитором читал в формате WAV.

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

    Почему же если точки выхода из подпрограмм не важны, не работает чтение/запись WAV-файла. При этом же вообще не используется никаких точек перехвата. Как тогда программа может влиять на результат. Насколько я понимаю, при этом контролируется сам разряд PB0 ППА, а код программы делающей доступ туда не важен. А может быть Вы контроллируете не тот порт, например F800, а не FF00 ? Также на мысль о "химии" при вводе WAV наводит невозможность загрузить файлы в MSX-кодировке внешним драйвером. Это вопрос ещё нуждается в прояснении. Могу попробовать читать/писать и в кодировке ZX-Spectrum, т.к она тоже есть в мониторе. Но пока это бесполезно, если даже обычная двухфазная кодировка не вводится.

    Строки

    cpu.debugOnHalt = yes
    cpu.debugOnIllegalCmd = yes

    надо помещать не в файл EMU80.CONF, а в в конец конфиг файла конкретного компьютера.

    Подскажите каким редактором можно отредактировать руские тексты в Ваших конфигах. Обычно конфиг-файлы это чисто текстовые файлы в кодировке MSDOS или Windows, чтобы можно было редактировать самым простым редактором. Обидно, что используется неизвестная кодировка для русских букв. Из-за это не смог изменить титр, т.е заголовок эмулятора при работе. Какая-то левая китайская кодировка и непонятно каким редактором это можно редактировать.

    Цитата Сообщение от Pyk
    где-то в одной из соседних тем уже начинали обсуждение возможности использования формата, альтернативного wav - в формате 1 бит на сэмпл и со сжатием.
    Слышал, что уже изобретён однобитовый формат для МГ-записей 8-ми разрядок. Называется BAV и используется в одной конструкции самодельного цифрового магнитофона. Вроде бы это формат отличается от WAV только тем, что число разрядов не 8, а 1, отчего в несколько раз сокращается объём файла.

    Для записи двухфазной кодировки годится частота дисретизации не ниже 22 КГЦ. Ведь при двухфазной кодировке скорость передачи 1200 бит/сек. Бит кодируется перепадом 0>1 или 1>0. Потому частота с которой следуют фронты равна 2400 ГЦ. Это значит, что между фронтами происходит 9 отсчётов и колебания фронтов равны +-11%. При этом размер файла будет в 18 раз больше объёма кода.

    Впрочем для СПЕЦИАЛИСТА это не очень актуально, т.к почти все старые программы есть в виде кодов. И вводить программы с заставками как в Синклере интересно только из спортивного интереса (сделать так, чтобы никто не сумел кракнуть) или с целью распространения новых программ в некопируемом виде.
    Последний раз редактировалось barsik; 31.12.2017 в 18:01.

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

  3. #2

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    И по-прежнему нельзя изменять флаги процессора.
    Помню, сделаю, не все сразу. А пока, если очень нужно, можно изменить редактированием половинки "регистра" AF.

    Цитата Сообщение от barsik Посмотреть сообщение
    Жалко, что шагание только по F7, я привык к T (так во всех отладчиках в мире, зачем нарушать традицию?)
    Зачем же так категорично? Может быть, так в большинстве отладчиков командной строки, но в визуальных отладчиках все-таки чаще что-то из серии F7, F8, F10, F11... Хотя мне не сложно продублировать команду на клавишу "T". Есть еще пожелания, какие буквы назначить в дополнение к F4, F8, F9?

    Цитата Сообщение от barsik Посмотреть сообщение
    уродские мнемоники получаются для Z80, если использовать мнемоники Intel
    Что касается меня, то я предпочитаю родные мнемоники для каждого процессора: Intel - для 8080 и Zylog - для Z80, так что такое мне тоже не очень нравится. Но не навязываю никому свое мнение - дело вкуса и привычки.

    Цитата Сообщение от barsik Посмотреть сообщение
    С ленинградским монитором 2.7 и 3.3 (в обоих заглушены кодом C9 входы CEDF) читает и пишет только в кодах (т.е в формате RKS). Со звуками работать отказывается.
    Да, знаю, есть проблема. Причину пока не знаю. Никакой "химии" там вроде бы нет, возможно просто баг. Разобраться пока не пытался, если поможете найти, буду благодарен.

    Цитата Сообщение от barsik Посмотреть сообщение
    Подскажите каким редактором можно отредактировать руские тексты в Ваших конфигах
    Обычная кодировка UTF-8. Открыть можно очень много чем, да хотя бы блокнотом, только в диалоге открытия файла выбрать из выпадающего списка эту кодировку. Есть и более продвинутые редакторы вроде Notepad++, а сам я предпочитаю консольный нортоноподобный файловый менеджер Far и его встроенный редактор.

    Ну а сейчас уже пора бы о встрече нового года подумать Всех с наступающим!

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

    Цитата Сообщение от Pyk Посмотреть сообщение
    Открыть можно очень много чем, да хотя бы блокнотом, только в диалоге открытия файла выбрать из выпадающего списка эту кодировку.
    Похоже, что блокнот - не самый удачный вариант. При сохранении он добавляет байты BOM в начало файла (EF BB BF), из-за чего его перестает понимать эмулятор. Можно, конечно, потом эти три байта убрать, но проще взять более адекватный редактор.

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

    Цитата Сообщение от Pyk Посмотреть сообщение
    Где-то в одной из соседних тем уже начинали обсуждение возможности использования формата, альтернативного wav - в формате 1 бит на сэмпл и со сжатием.
    Да, кстати, может быть поддержку CSW добавить?

  4. #3

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

    По умолчанию

    Pyk, попробовал собрать под macos, лог во вложении. Я пока довольно неопытный под маком, до конца не дошёл, сорри.
    Сначала не нашло SDL, но он есть собранный, скачать и один файл перетащить.
    А вот wxWidgets похоже нужно собирать из исходников, это я пока отложу.
    Посмотрите лог -- собрались файлы зависимые только от SDL, может варнинги будут вам полезны, их там много.
    Особенно подозрительно выглядят выражения вида ((symbol && 0xC0) != 0xC0) -- по-моему, тут просто ошибка, должно быть побитовое & вместо логического &&.

  5. #4

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin,
    Код:
    brew install wxmac --devel
    Но запустить я все равно не смог, выкидывает адский эксепшн при старте:

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

    Код:
    2018-01-10 03:31:45.148 Emu80[55913:802511] -[SDLApplication transformToForegroundApplication]: unrecognized selector sent to instance 0x7fdead704090
    2018-01-10 03:31:45.149 Emu80[55913:802511] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SDLApplication transformToForegroundApplication]: unrecognized selector sent to instance 0x7fdead704090'
    *** First throw call stack:
    (
    	0   CoreFoundation                      0x00007fff31f0a53b __exceptionPreprocess + 171
    	1   libobjc.A.dylib                     0x00007fff58919942 objc_exception_throw + 48
    	2   CoreFoundation                      0x00007fff31fa1824 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    	3   CoreFoundation                      0x00007fff31e81f13 ___forwarding___ + 1443
    	4   CoreFoundation                      0x00007fff31e818e8 _CF_forwarding_prep_0 + 120
    	5   libwx_osx_cocoau_core-3.1.dylib     0x00000001075a906c _ZN5wxApp9DoInitGuiEv + 262
    	6   libwx_osx_cocoau_core-3.1.dylib     0x00000001075e71e4 _ZN5wxApp10InitializeERiPPw + 184
    	7   libwx_baseu-3.1.dylib               0x0000000107b19717 _Z12wxEntryStartRiPPw + 233
    	8   libwx_baseu-3.1.dylib               0x0000000107b19ca9 _Z12wxEntryStartRiPPc + 30
    	9   Emu80                               0x000000010710831f _Z9palWxInitiPPc + 31
    	10  Emu80                               0x00000001070c4ce1 _Z7palInitiPPc + 49
    	11  Emu80                               0x00000001070bd232 main + 34
    	12  libdyld.dylib                       0x00007fff59506145 start + 1
    )
    libc++abi.dylib: terminating with uncaught exception of type NSException
    Abort trap: 6
    [свернуть]


    Пока не разобрался в чем дело.
    Больше игр нет

  6. #5

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, спасибо, предупреждения насчет битовых операций - действительно ошибки (возможно, как раз с этим связаны известные проблемы с эмуляцией ВГ75), остальное подробнее посмотрю вечером. Не совсем понял только, почему у меня эти предупреждения с этим же Makefile не выдаются, может дело в ключах sdl2 либо в версии gcc, либо просто в особенности его поведения на macos? Можно узнать версию gcc и что выдает sdl2-config --cflags?

    nzeemin, svofski, можно попробовать собрать только lite-версию, не требующую wx. Потребуется наверное только немного подредактировать Makefile, чтобы не пытался собирать зависимые от wx файлы (хотел сделать CMakeLists.txt для cmake для упрощения сборки, но руки пока не дошли).

    Вообще, не очень мне нравится одновременное использование SDL и WX. Особенности реализации этих библиотек под Windows и Linux разные, приходилось экспериментировать, чтобы заставить их более-менее нормально работать вместе. Для windows и linux подружить их удалось, а вот для macos я этим пока не занимался. Может быть скоро основной вообще станет qt-версия: собственно эмуляция уже работает, осталась некоторая рутинная работа по реализации пользовательского интерфейса и т.п.

  7. #6

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

    По умолчанию

    Pyk, в Qt-версии как выводите экран?
    У меня экран это класс от QWidget, имеющий внутри QImage.
    В paintEvent() эмулятор рисует экран в QImage, затем выводит его на реальный экран через QPainter::drawImage().
    https://github.com/nzeemin/ukncbtl-q...ster/qscreen.h
    https://github.com/nzeemin/ukncbtl-q...er/qscreen.cpp

    Ну и со звуком тоже интересно как вы поступили. У меня так:
    https://github.com/nzeemin/ukncbtl-q...er/qsoundout.h
    https://github.com/nzeemin/ukncbtl-q.../qsoundout.cpp
    Последний раз редактировалось nzeemin; 10.01.2018 в 12:31.

  8. #7

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, вывожу на экран практически так же. Единственное - QImage готовится не в paintEvent, а заранее, в момент эмуляции обратного хода луча, асинхронно с отрисовкой его в paintEvent.

    А звук мне пришлось хитрее делать, я создавал собственное устройство - потомок от QIODevice.

    Исходники Qt-версии все еще еще слишком сырые, опубликую на github чуть позже. Можно обсудить детали реализации по эл. почте, здесь наверное это будет не совсем уместно.

  9. #8

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Потребуется наверное только немного подредактировать Makefile,
    Я сделал такой Makefile.lite (отдельный, чтобы не возиться с разными CFLAGS и LDFLAGS - это правда уже легче будет CMake разруливать)

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

    Код:
    #!/usr/bin/make -f
    
    SRCDIR = src
    INSTALLDIR= ~/emu80
    
    CC = c++
    CFLAGS = -c -Wall -std=c++11 `sdl2-config --cflags` -DPAL_SDL -DPAL_LITE
    LDFLAGS = `sdl2-config --libs`
    
    SRC = $(SRCDIR)/*.cpp
    SRCSDL = $(SRCDIR)/sdl/*.cpp
    SRCLITE = $(SRCDIR)/lite/*.cpp
    
    SOURCES_LITE = $(shell echo $(SRC)) $(shell echo $(SRCSDL)) $(shell echo $(SRCLITE))
    
    OBJECTS_LITE = $(SOURCES_LITE:.cpp=.o)
    
    all: Emu80lite
    
    Emu80lite: $(OBJECTS_LITE)
            $(CC) $(LDFLAGS) $(OBJECTS_LITE) -o $@
    
    .cpp.o:
            $(CC) $(CFLAGS) $< -o $@
    
    clean:
            rm -f $(OBJECTS)
            rm -f $(OBJECTS_LITE)
            rm -f Emu80
            rm -f Emu80lite
    
    install: Emu80 Emu80lite
            mkdir -p $(INSTALLDIR)
            cp Emu80 $(INSTALLDIR)
            cp Emu80lite $(INSTALLDIR)
            cp -r dist/* $(INSTALLDIR)
            cp COPYING.txt $(INSTALLDIR)
            cp whatsnew.txt $(INSTALLDIR)
            cp doc/* $(INSTALLDIR)
    [свернуть]


    make -f Makefile.lite

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

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

    Цитата Сообщение от Pyk Посмотреть сообщение
    Можно узнать версию gcc
    Код:
    Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 9.0.0 (clang-900.0.39.2)
    Target: x86_64-apple-darwin17.2.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    Это не совсем gcc Кланг бывает гораздо более строг в варнингами.
    Больше игр нет

  10. #9

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, скорее всего эмулятор не знает, какую платформу эмулировать. Полная версия при первом запуске показывает форму выбора типа эмулируемого ПК а lite-версия этого не умеет. Нужно либо файл emu80.run скопировать с другой системы, либо явно указать тип ПК в командной строке ("Emu80 -a" и т. д. - варианты можно подсмотреть в emu80.conf: последний параметр в config.addPlatform (при наличии)).

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

    Цитата Сообщение от svofski Посмотреть сообщение
    Это не совсем gcc
    У nzeemin именно gcc, судя по логам...

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

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