Тебе поможет: lib765 и libdsk. Еще есть libgdos. Все 3 юзаются в fuse-emulator.
Вид для печати
Тебе поможет: lib765 и libdsk. Еще есть libgdos. Все 3 юзаются в fuse-emulator.
Благодарствую, первые 2 нашел, вооружился мануалом, пойду разбираться
Скачал. Собрал. Все замечательно... Запустил - чорный квадрат на белом бордере, хотя все работает. Два дня долбался, пока понял, что это второй экран, который ошибочно выставляется в режиме 48к.
При создании структуры Video ставится основной экран(Video::curscr = 0). Возможно, действовал 16c - этот режим как раз не инициализируется (тут баг). Но оба должны устанавливаться в стандартные при сбросе.
SAM style,
Возможно, действовал 16c -
А вот тут не скажу.. может и так
Проблема проявляется, только если Machine = zx48k, остальные работают правильно, даже если присутствует только 1982.rom
Да, я тоже выяснил - баг кроется именно в железе 48К. В понедельник покопаюсь, выясню почему.
---
А точнее - в памяти 48К. Маска номера банки была 0, но работать оно всё равно пыталось в банках 5,2,0. Раньше этого не было заметно, т.к. банки 5 и 2 стояли постоянно, с введением +2 возникла необходимость восстанавливать их при сбросе. Установка банок происходит с наложением маски, и во всех 3 страницах получался банк 0. Исправлено, вечером отправлю в гит.
Так-с.
- Баг с 48й памятью исправлен.
- Железо: +2a переименован в просто +2, добавлен +3. ПЗУ, выложенное выше, подходит для обоих. +3 отличается от +2 наличием портов 2FFD и 3FFD для связи с контроллером дискокрутов.
- Задействованы исходники lib765 без libdsk. +3 определяет наличие дисководов А: и B:, но пока что не работает с ними.
- Во вкладке Storage->Disk можно выбрать интерфейс к fdc - Beta-disk/+3DOS/ничего. (хотя работает оно не так, как планировалось)
Собрал под OpenSuse 11.3 i586. Имеется глюк, если при изменении border size фактический размер экрана изменяется, а виртуальный - нет, и изображение перекашивает по диагонали.
После перезапуска эмулятор инитится некорректно и перекос остается, то есть корректно работает только при border size 100%
Собирал под QT.
Про перекос в курсе. Это из-за несовпадения размера окна и размера образа изображения в памяти. Что странно - эти значения берутся из одной и той же переменной. При 50% тоже косит?
update
- Возможность загрузить диск *.dsk (только extended, mfm, dd) в дискокрут. Так хоть можно его посмотреть посекторно посредством ВГ93.
В понедельник на работе гляну, дома собирать не хочу, больно дофига евелоперских пакетов там по зависимостям едет.
На одинарном и двойном размере экрана перекос имеет место быть, а бордер сайз 50% гляну на работе уже. Мож в исходнике свежим глазом увижу чего. Мне думается что 50% будет работать правильно и грабля в целочисленном делении где-то.