PDA

Просмотр полной версии : Пожелания и планы по эмулятору Башкирия-2М



Страницы : 1 2 3 [4]

b2m
22.08.2016, 12:02
а в чем у них проблемы?
Для каждого эмулятора можно найти какую-либо прогу, которая выполняется не так, как на железе.

Doronetty
22.08.2016, 18:52
... из десяти существующих? :) а в чем у них проблемы?
Проблем почти не было у эмулятора А. Савельева. Но автора, увы, уже нет, а эмуль ориентирован был под DOS. Emulator 3000 имеет неплохую поддержку БК-11 (пожалуй наиболее адекватную среди Виндозных эмуляторов, по слухам, там были использованы далеко не последние исходники эмулятора Савельева), но эмуль уже лет 200 не обновлялся. А остальные современные эмуляторы, если погонять на них демки, сильно уступают двум предыдущим... Ну и ни один из них не приблизился к реалу настолько, как, например, эмуляторы Спектрума, Атари 8-бит и проч...

ZEman
22.08.2016, 20:05
даже этот ?
http://spc-emu.uphero.com/development.html

Sergei Frolov
27.09.2016, 14:26
Там вроде есть прошивки для УМК и УМПК-80, можно сделать эмуляторы

http://radiokot.ru/forum/viewtopic.php?f=34&t=94426

barsik
27.02.2017, 15:49
Помещаю это сообщение здесь, т.к оно не в формате темы "F.A.Q. по эмулятору B2M".

У меня нет устройств с CP/M с блоками более 2К. А возникло желание посмотреть на CP/M с блоками в 16К. Как это сделать?

Простой выход, - воспользоваться эмулятором с эмуляцией НГМД и CP/M такой, где можно изменить формат диска. Для обычного СПЕЦИАЛИСТА эмулятор не поддерживает НГМД, для РК86 с РК-НГМД - вообще нет эмулятора. Остаётся только ОРИОН.

Для начала хочу выразить панегирик B2M, за его эмулятор. Эмуляция дисковода действительно удобна при использовании старого ПО. Хотя в моём случае меня больше устроило бы наличие в эмуляторе двух функций - запись и чтение сектора, доступных из программ КР580/Z80.

Увы, в дистрибутив эмулятора не включён конфиг для ОРИОНА с голым Z80.

Мне пришлось потратить 2 дня, чтобы разобраться почему в эмуляторе B2M с поддержкой НГМД антикварные CP/M грузятся и работают, а мои DOS не работают. Мой загрузчик для Z80 вообще не грузит, но загрузчик MBOOT$ (по цифре 4) грузит. Но... только антикварные ДОС.

После долгого электро-траха понял, что грузятся только ДОС, что написаны для КР580. Тогда стало ясно, где "собака зарыта", что дело в Z80.

Причина оказалась в конфиг-файле. Оказывается для перевода ОРИОНА на Z80 недостаточно заменить слово К580ВМ80А на слово Z80, как это делается в конфиге для РК86. После долгих мучений удалось выяснить, что чтобы Z80 работал на ОРИОНЕ надо в секцию CPU включить строки:

port.maptomem=0
port[F8]=vid.mode
port[F9]=mm.page
port[FA]=vid.page

Частично помогло, но не целиком. Попытки загрузиться моим Z80 загрузчиком НГМД не удались. Удачно, что для всех своих ДОС я всегда делал не только версии загружаемые с НГМД, но и ДОС стартующие, как файлы ORDOS из ROM-диска. И вот ДОС стартующие $-файлами заработали с таким конфигом без проблем. Загрузчик MBOOT$ (п.4) после исправления конфига тоже стал наконец грузить версии DOS на Z80.

Дело в загрузчике, - догадался Штирлиц... Стало ясно что проблема в моём Z80-загрузчике, - он не грузит те CP/M, что грузятся загрузчиком MBOOT$ от error404. Загрузчик 1990 года для КР580 тоже заработал. А загрузчик на Z80, которым я пользовался с 1992, так и не заработал. Что предположительно свидельствует не о 100% эмуляции архитектуры.

Всё-же наконец стало можно странслировать CP/M для НГМД с блоками в 16К и проверить их в эмуляторе. Это не проблема (замена 3 цифр).

Для начала я решил инсталлировать на дискеты десяток версий ДОС, чтобы получить загрузочные диски. Это получилось. Но снова с глюками. Не могу об этом писать, пока не разобрался в сути... В итоге до CP/M с блоками в 16К ещё даже не добрался.

Возник вопрос. В каком объёме эмулятор B2M поддерживает КНГМД на ВГ93? Я было собрался понаделать ODI-образов дискет разного формата, воспользовавшись форматёром UNIFOR.COM. В частности HD-формата 1640 кб и 1800 кб, для которых у меня есть DOS и реальные дискеты (но не TD0). Но, облом. При запуске форматёра (причём любого) происходит тупой завис. Не знаю также как получать ODI-файлы из реальных дискет.

С другой стороны, я не могу перевести и TD0 файлы реальных дискет в ODI-формат (SteinBlume не помогает, не берёт мои TD0).

Никто не знает, где можно взять программу для конверсии TD0 в любой другой формат с доступом к файлам?

Таким образом остаётся только создавать ODI-файлы формата отличного от 800К вручную, набивая коды с клавиатуры байт за байтом. Но тут возникает ряд вопросов.

Непонятно чему служит строка.
vdpb="2800040F0084017F00C00020000400"

Из интереса закомметировал эту строку. И вдруг...

Ничего не изменилось! По крайней мере, на первый взгляд. Система грузится, файлы копируются. Это значит, что в эмуляторе B2M можно использовать и другие ДОС (у которых ИНФО-блок в BOOT-секторе другой).

Нетрудно догадаться, что эта строка отображает БПД, часть ИНФО-блока считываемого в подпрограмме NASTR, что вызывается из SELDSK CP/M-BIOS и в грамотных CP/M из BDOS-функции RESET.

Вопрос: Сколько максимум секторов в треке и треков поддерживает эмулятор B2M, эмулируя БИС ВГ93?

Т.к регистр сектора однобайтовый, то д.быть - не менее 256. Аналогично, относительно числа треков. Без всякой связи с реальным дисководом.

В таком случае можно иметь 256 кб в треке на 256 треках, что даёт размер диска в 64 мб. Т.е, если ограничений в эмуляторе B2M нет (реальные ограничения в реальном ВГ93 не волнуют, речь только об эмуляторе B2M), то в этом эмуляторе можно реально проверить быстродействие CP/M с реальным винчестером и дисками большого объёма.

Вопрос: Поддерживает ли эмулятор B2M дискеты любого формата? Или не стоит тратить своё время пытаясь это использовать. В частности, хочу сделать диск размером в 32 мб и посмотреть на скорость CP/M.

Кстати, быстродействие эмулятора при работе с "дискетами" (даже при Clock 2.5 МГЦ) примерно в 4-8 раз больше, чем скорость обмена реального КНГМД на ВГ93. Кроме того, скорость Z80 можно поставить 10 МГЦ (тут ограничение только в скорости IBM PC, т.к эмулятор ресурсоёмкий и на медленной PC может не "выжать" 10 МГЦ).

Совет пользователям. Не пытайтесь запустить сразу две копии эмулятора в дисководном варианте. Т.к тогда на втором эмуляторе будет ошибка, т.к первый эмулятор захватывает ODI-файл образа диска в монопольное пользование.

Стоит помнить, что только HD-версии ДОС могут работать в формате более 5 секторов в треке и более 80 треков, т.е более 800К. В версиях CP/M ОРИОНА из 1991 года размер Alloc Table резервирован только для дискет размером до 800К.

Спойлер только для B2M (другим не читать). Это не критика, а заметки о том, что хотелось бы иметь исправленным в будущих версиях и вопросы.


Никакой диагностики, не выдаётся, если не найден файл загружаемый при обработке файла конфигурации (ПЗУ, ROM-диск, карта клавиатуры и образы дисков), а вместо этого происходит тупой завис.

Очень неудобно не знать какой диск вставлен. Невозможно узнать какой диск уже стоит в данном приводе. В чужих эмуляторах имя "вставленного" сейчас диска, по крайней мере в меню смены диска, отображается..

При открытии файла окно просмотра слишком маленькое и не раздвигается как окно, что неудобно при большом числе файлов. Удобнее иметь большое вертикальное окно прокрутки.

Что делает строка vdpb.boot="Orion\DISK_001.ODI"

По логике с этого диска д.быть загрузка, но загрузка происходит с диска указанного image[0].file. И даже когда image[?] нет, все-равно.

Как "шариться" по всем банкам в отладчике? Можно вручную записать что-то в упр.регистр F900, чтобы переключить банку. Но при попытке нажать F5 в другой банке произойдёт улёт.

И также, как в эмуляции ИРИШИ, раздражает раскладка клавиатуры. Такое впечатление, что до меня никто эмулятором B2M для эмуляции ОРИОНА не пользовался (или мучился, но стеснялся пожаловаться). Клавиши '^~' и ':*' поменяны местами. Это ни как на PC, ни как в РК86-клавиатуре. Очевидно, для исправления достаточно где-то поменять 2 цифры, чтобы всё стало как в РК86. Но где и что?

Как устроена и используется LAYOUT.KBD. Если её загрузку в конфиге закомментировать, то эмулятор перестаёт реагировать на клавиатуру, отчего использовать vk.xlat[0/1][hh]="HH" для исправления раскладки, ни с ней, ни без неё не получается.

Что делает строка RST(7) в конфиге ОРИОНА?

Насчёт строки 'port.maptomem=0'. В ОРИОНЕ используется и OUT XY и STA XYXY, т.е к системным регистрам одни программы обращаются по STA, другие по OUT. Причём при Z80 с одними адресами OUT должен попадать в память, с другими игнорироваться. Какая строка maptomem должна быть?

Почему в файлах из дистрибутива
Orion-128 Z80-Card-II.cfg
Orion-128 Z80 HDD.cfg

такой странный блок 'mm'?



mm : MemMap {
map[0][0000-3FFF]=mem1.frame[1]
map[0][4000-EFFF]=mem1.frame[0][4000]
map[0][F000-F3FF]=mem1[F000]
map[0][F400-F4FF]=sys.data
map[0][F500-F5FF]=app1.data
map[0][F700-F7FF]=extmap
map[0][F800-F8FF].wo=vid.mode
map[0][F900-F9FF].wo=mem1.frame[0].page
map[0][FA00-FAFF].wo=vid.page
map[0][F800-FFFF].ro=bios[0000]

map[1][0000-3FFF]=mem1.frame[1]
map[1][4000-FFFF]=mem1.frame[0][4000]

map[2][0000-EFFF]=mem1.frame[0]
map[2][F000-F3FF]=mem1[F000]
map[2][F400-F4FF]=sys.data
map[2][F500-F5FF]=app1.data
map[2][F700-F7FF]=extmap
map[2][F800-F8FF].wo=vid.mode
map[2][F900-F9FF].wo=mem1.frame[0].page
map[2][FA00-FAFF].wo=vid.page
map[2][F800-FFFF].ro=bios[0000]

map[3][0000-FFFF]=mem1.frame[0]
}


Получается, что во всех 4-х банках разные способы доступа к памяти, а ведь в реальном ОРИОНЕ все банки одинаковые. Можно предположить, что это какая-то отладочная версия конфига. Или же тут какая-то другая непонятная конструкция и map[x] не означает выбор текущей банки портом F9, а что-то иное настроенное на конкретную программу

Error404
27.02.2017, 17:30
Никто не знает, где можно взять программу для конверсии TD0 в любой другой формат с доступом к файлам?


Я пользовался такой программой для преобразования TD0 в ODI (во вложении. она работает только на 32-битных Виндовс, 64-битные не пойдут). Пример:
WTELEDSK.EXE TURBO128.TD0 -oTURBO128.ODI

Как она будет работать на форматах отличных от 800к не проверял. В основном я конвертировал чужие TD0-шки (все они были от 800к), сам я этот формат недолюбливаю еще с прошлого века за привязнанность Теледиска к работе "по железу" (из-за чего оно было весьма капризно к окружению) и ничего своего (что могло быть более 800к) в этом формате не хранил.

Black Cat / Era CG
27.02.2017, 18:25
С другой стороны, я не могу перевести и TD0 файлы реальных дискет в ODI-формат (SteinBlume не помогает, не берёт мои TD0).
Никто не знает, где можно взять программу для конверсии TD0 в любой другой формат с доступом к файлам?Отправьте мне, если можно, сюда era_cg@speccy.su пару td0 образов на пробу.

Error404
27.02.2017, 21:28
Вот тут есть какие-то исходники для работы с TD0:
https://github.com/jfdelnero/libhxcfe/tree/master/sources/loaders/teledisk_loader

Black Cat / Era CG
27.02.2017, 21:32
И тут, например: http://www.emuverse.ru/wiki/Teledisk
Диски завтра гляну, скажу.

b2m
27.02.2017, 21:59
В каком объёме эмулятор B2M поддерживает КНГМД на ВГ93?
Все команды ВГ93, кроме команд форматирования (т.е. чтение/запись дорожки целиком). Причина проста и очевидна - эмуляция ВГ93 реализована только для работы с образами, являющимися посекторной копией. Так проще, так легче...


Непонятно чему служит строка.
vdpb="2800040F0084017F00C00020000400"
Вот я сейчас расскажу, а в ответ опять получу тонну критики, что так неправильно, неудобно и т.п. :)
Это DPB виртуального CP/M диска. Чтобы им воспользоваться, нужно при открытии образа выбрать тип файлов *.* и любой файл из каталога. Тогда этот каталог станет виртуальным диском, и все файлы размером не более, чем размер логического диска, описываемого этим DPB, будут доступны через этот виртуальный образ, причём как на чтение, так и на запись.


Сколько максимум секторов в треке и треков поддерживает эмулятор B2M, эмулируя БИС ВГ93?
256 треков, 2 стороны, 255 секторов. Но! По умолчанию геометрия диска задана 80 треков 2 стороны 5 секторов 1024 байт. Т.е. в терминах эмулятора 80C2H5S1024. Эту геометрию можно указать в секции ВГ93:

image[0].geometry=80C2H5S

Если количество байт не указано, будет 1024. Геометрия задаётся не только для того, чтобы описать образ диска, но и для того, чтобы ВГ93 правильно выдавал ошибку позиционирования.


Поддерживает ли эмулятор B2M дискеты любого формата?
Максимальным будет 256C2H255S1024, но я не проверял работу с такими образами.


Кстати, быстродействие эмулятора при работе с "дискетами" (даже при Clock 2.5 МГЦ) примерно в 4-8 раз больше, чем скорость обмена реального КНГМД на ВГ93.
Забота о пользователе :) Работа с дисками и так не быстрая, а если ещё и специально притормаживать...


Не пытайтесь запустить сразу две копии эмулятора в дисководном варианте. Т.к тогда на втором эмуляторе будет ошибка, т.к первый эмулятор захватывает ODI-файл образа диска в монопольное пользование.
Правильно. Ни к чему двум эмуляторам писать на один диск. Данные попортятся.


Никакой диагностики, не выдаётся, если не найден файл загружаемый при обработке файла конфигурации (ПЗУ, ROM-диск, карта клавиатуры и образы дисков), а вместо этого происходит тупой завис.
Обычно конфиги делаю я, для себя я не стал делать всяких раздражающих сообщений. А если пользователь удалил файл из эмулятора - сам виноват.


Очень неудобно не знать какой диск вставлен.
Согласен. Где отображать имя файла?


При открытии файла окно просмотра слишком маленькое и не раздвигается как окно, что неудобно при большом числе файлов. Удобнее иметь большое вертикальное окно прокрутки.
Это при открытии файла образа диска, или речь об окне выбора конфига?


Что делает строка vdpb.boot="Orion\DISK_001.ODI"
Задаёт данные нулевых треков виртуального диска. Если вместо реального образа воспользоваться виртуальным диском, а CP/M располагается на диске, то надо же откуда-то её грузить. Иначе при выходе из программы или нажатии ^C в командной строке будет зависон.


Как "шариться" по всем банкам в отладчике? Можно вручную записать что-то в упр.регистр F900, чтобы переключить банку. Но при попытке нажать F5 в другой банке произойдёт улёт.
Через Ctrl+M можно выбрать, что отображать в окне дампа. Но там физический адрес, так что соответствие "банке" придётся высчитывать самому. Там-же можно и порты выбрать, их тоже можно менять. Но нужно иметь ввиду, что в некоторых случаях чтение из порта может привести к изменению состояния устройства.


Как устроена и используется LAYOUT.KBD
Просто матрица клавиатуры 8х16, младший бит слева. Наименование клавиш лучше подсмотреть в имеющихся файлах. Должно соответствовать английской клавиатуре, т.е. имя клавиши (имеются ввиду спец-символы), такое, какой символ выдаёт английская клава при нажатии на клавишу.


Что делает строка RST(7) в конфиге ОРИОНА?
Часто вместо контроллера прерываний используется код FF, в мнемониках i8080 это команда RST 7. То есть эта строка задаёт источник прерываний в системе с подобным образом формирования прерываний.


Насчёт строки 'port.maptomem=0'. В ОРИОНЕ используется и OUT XY и STA XYXY, т.е к системным регистрам одни программы обращаются по STA, другие по OUT. Причём при Z80 с одними адресами OUT должен попадать в память, с другими игнорироваться. Какая строка maptomem должна быть?
Вроде я кроме port.maptomem=1 других строк не использовал. Если не задавать эту строку, отображения портов на память не будет. Но это настройка только для ВМ80.


Почему в файлах из дистрибутива
Orion-128 Z80-Card-II.cfg
Orion-128 Z80 HDD.cfg

такой странный блок 'mm'?

Получается, что во всех 4-х банках разные способы доступа к памяти, а ведь в реальном ОРИОНЕ все банки одинаковые.
Данная конструкция призвана менять конфигурацию памяти при задании соответствующих битов порта FB.

Pyk
27.02.2017, 23:51
b2m, может быть стоит собрать в одном месте выдержки из этого и некоторых других постов? Получится некое подобие документации... А то нет-нет, да что-нибудь новенькое о твоем эмуляторе узнаешь ;)

NEO SPECTRUMAN
16.03.2017, 00:50
ПОЧЕМУ ВСЕ ШРИФТЫ ХРАНЯТСЯ В ОДНОМ ФАЙЛЕ??????
почему нельзя для каждой машины свою папку, свои настройки, свои файл шрифтов

вот нужно быстро дернуть шрифт из эмулятора
а фиг вам нужно плясать с бубном

захочешь подменить на свой...
тишина...


почему то конфиги лежат в одной
ПЗУ-шки, другие файлы раскиданы в другом месте
шрифты в третьем

короче я НИГАДУЮ!!!


а еще не хватает паузы в виде кликабельной мышкой кнопки ;)

b2m
16.03.2017, 10:01
ПОЧЕМУ ВСЕ ШРИФТЫ ХРАНЯТСЯ В ОДНОМ ФАЙЛЕ??????
Потому что файл этот я взял из эмулятора многоуважаемого Pyk. Его эмулятор появился раньше моего.


почему нельзя для каждой машины свою папку, свои настройки, свои файл шрифтов
Можно, конечно. Может даже так удобнее будет. Для пользователя. А мне удобнее иметь все файлы конфигов в одном каталоге, чтобы если что, быстро подсмотреть, а как я делал ту или иную фичу в другом компе.


вот нужно быстро дернуть шрифт из эмулятора
а фиг вам нужно плясать с бубном
Вопрос не ко мне :)


захочешь подменить на свой...
тишина...
Какие проблемы? Укажи в конфиге путь к своему шрифту.


почему то конфиги лежат в одной
ПЗУ-шки, другие файлы раскиданы в другом месте
шрифты в третьем
Могу всё перетасовать в другом порядке. Где гарантия, что наконец-то всем понравится?


короче я НИГАДУЮ!!!
Закусывать надо.


а еще не хватает паузы в виде кликабельной мышкой кнопки ;)
Может быть. В принципе, там работы на три копейки. Сделаю, если не забуду, когда снова возьму в руки шашку :)

NEO SPECTRUMAN
16.03.2017, 17:38
Можно, конечно. Может даже так удобнее будет. Для пользователя. А мне удобнее иметь все файлы конфигов в одном каталоге, чтобы если что, быстро подсмотреть, а как я делал ту или иную фичу в другом компе.
на помню что так сделано в Е3000


Могу всё перетасовать в другом порядке. Где гарантия, что наконец-то всем понравится?
ну дело ваше
как по мне удобней когда все по одной машине в одном месте а не раскидано

ну а добавление следующих шрифтов будет...
я понимаю вообще в виде костылей с таким подходом
с таким же успехом чтоб найти все файлы по одной машине нужно посетить 4 папки...

не помешало бы окошко при дебагании с отображением всех доступных машине шрифтов
чтоб можно было глянуть что доступно для использования
и под какими оно все номерами

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


а еще почему по дефолту не добавлены те конфиги всяких спеков с ви53, всяких там...

Файлы для эмуляции игровой приставки Эльф на базе ZX Spectrum....

Файлы для эмуляции игрового автомата Фотон на базе ZX Spectrum. Чтобы "опустить монету" нужно нажать F1, можно в комбинации...
НАФИГА их нужно скачивать отдельно и кудато вкладывать???
положите их все в эмуль раз и навсегда!!!


нужно включение мнемоник z80 в дебагере 8080
для тех кто не понимает последний
(в каком то 6502 дебагере(не помню какой платформы) мне вообще попадалось опциональное включение z80 подобных варинтов мнемоник(которых я до этого никогда не встречал(могу путать 6502 с чем то другим))))


и не помешал бы мануал по написанию своих конфигов
какое железо доступно (полный список)
и как его правильно вешать...

NEO SPECTRUMAN
17.03.2017, 17:44
ПИЛИМ УПРАВЛЕНИЕ ВЫСОТОЙ ЛИНИИ КУРСОРА В ВГ75!!!!!

вот rka
http://zx-pk.ru/threads/27478-sekrety-i-tryuki-programmirovaniya-%28v-tom-chisle-i-igr%29-dlya-rk-86.html?p=905060&viewfull=1#post905060

вот видео с одного реала
http://zx-pk.ru/threads/27478-sekrety-i-tryuki-programmirovaniya-(v-tom-chisle-i-igr)-dlya-rk-86.html?p=905063&viewfull=1#post905063

вот видео с другого реала
http://zx-pk.ru/threads/27478-sekrety-i-tryuki-programmirovaniya-(v-tom-chisle-i-igr)-dlya-rk-86.html?p=905072&viewfull=1#post905072

ни на одном из них курсора нет!

dk_spb
24.04.2017, 14:31
Может я далеко не первый кто спрашивает этот вопрос.
А какой должен быть .wav для понимания его в режиме эмуляции Вектор-06Ц?
Беру заведомо рабочий .wav (с него грузится эмулятор VirtualVector) - и никак..... Даже не начинает кубики рисовать...

b2m
24.04.2017, 14:53
Чтение .wav файла от режима эмуляции (т.е. от выбора компьютера) вообще-то не зависит. Поддерживаются как моно, так и стерео записи (при стерео будет среднее значение двух каналов), 8 и 16 бит. Недавно тут рассказывали про стерео запись с инверсным значением каналов, не твой вариант случайно? :)

Для вектора я в конфиге активировал фильтр подавления шумов, попробуй убрать строчку noisefilterfreq=3000

dk_spb
24.04.2017, 16:21
Строчку убрать пробовал - не помогло.
Вот пример http://oldpc.su/0/11.rar (4 метра).
В VV грузится без проблем.
В EMU (выбираю простой Vector-06c) вообще ни одного кубика не рисует.

b2m
25.04.2017, 22:03
В EMU (выбираю простой Vector-06c) вообще ни одного кубика не рисует.
Да, странно, видимо как-то не так фильтруется. Вроде бы сигнал идеальный. С наскоку не нашёл причину.

dk_spb
26.04.2017, 23:10
b2m, Спасибо, будем ждать исправлений.

Saar
13.11.2017, 15:47
b2m,
подскажите какой формат у дисков для Львов ПК-02. Я так понял там несколько вариантов было с разным числом секторов.
Вижу образы на 380кб, 650кб, 820кб.
Еще интересует как располагаются трэки в образе: трэк-сторона-сектор или сторона-трэк-сектор?

Error404
13.11.2017, 19:37
Пожелание: добавить конфиг для ATM2 (v7.1x), а то с удивлением обнаружил, что нормальных эмуляторов ATM нету.
Чтобы в режиме АТМ можно было загружаться с IDE вот с этого образа (https://yadi.sk/d/VuD4nwTk3PSF33), пока что на данный момент эту задачу я в имеющихся эмуляторах не решил.

Black Cat / Era CG
13.11.2017, 19:54
IDE вот с этого образа
А чем за система то, на этом многострадальном образе?

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

CP/M?

Error404
13.11.2017, 21:53
А чем за система то, на этом многострадальном образе?

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

CP/M?


Говорят, что CP/M. Мне проверить нечем.

Black Cat / Era CG
13.11.2017, 21:57
Ну я в общем, бегло глядя, ничего там похожего на ф/с CP/M не увидел. Там видно вроде Tasis.

Error404
14.11.2017, 21:49
Ну я в общем, бегло глядя, ничего там похожего на ф/с CP/M не увидел. Там видно вроде Tasis.

Ну хочть что-то там должно же с него грузиться? Я уже и на Тасис согласный.

Black Cat / Era CG
14.11.2017, 22:22
Ну хочть что-то там должно же с него грузиться? Я уже и на Тасис согласный.
Все-таки наверное, по этому вопросу надо попробовать понастойчивее попытать Максима Тимонина (aka Максагор). Сдается мне, он что-то знает ;-)

b2m
15.11.2017, 11:21
как располагаются трэки в образе: трэк-сторона-сектор или сторона-трэк-сектор?
Образ состоит из дорожек (треков), дорожка имеет две стороны, сектора естесственно подряд. Даже если количество и размер секторов на дорожке одинаковое, в зависимости от количества дорожек образ может быть разного размера. Например 80 дорожек 2 стороны 5 секторов по 1Кб 80х2х5х1Кб = 800Кб, а если сдамплены 82 дорожки, то будет 82х2х5х1Кб = 820Кб. Если формат диска в конфиге не указан, эмулятор пытается предположить его на основании размера. Однако количество таких предположении очень ограничено. Например, если размер образа 720Кб, то будет предположение, что это 80х2х9х512 байт.

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


Пожелание: добавить конфиг для ATM2 (v7.1x)
А что такое АТМ2? :)

Error404
15.11.2017, 12:21
А что такое АТМ2? :)

Спектрумсовместимый банкомат (http://atmturbo.nedopc.com/index.htm) :)

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

Еще вот:
http://atmturbo.narod.ru/atmdscr.htm

b2m
15.11.2017, 13:18
Если бы там только конфигом обойтись можно было... Как минимум новые видеорежимы надо делать. Дешифрация некоторых портов тоже нетривиальная. Вобщем история длинная.

Black Cat / Era CG
15.11.2017, 14:09
Еще вот:
http://atmturbo.narod.ru/atmdscr.htm
Тогда вот так лучше (наверное): http://atmturbo.nedopc.com/atmdscr.htm

b2m
15.11.2017, 14:53
Тогда вот так лучше (наверное): http://atmturbo.nedopc.com/atmdscr.htm
Да, но на народе про v7.30 есть.

Black Cat / Era CG
15.11.2017, 14:57
О как! А я всегда думал, что недопц-версия более актуальна. Об этом ведает только Максагор (проверка связи)

Максагор
15.11.2017, 19:37
О как! А я всегда думал, что недопц-версия более актуальна. Об этом ведает только @Максагор (проверка связи)

Забудьте про "v7.30" на "народе". Само зеркало на "народе" не обновляется с 2005 года, с тех пор как я переехал на NEDOPC.COM, а 7.30 в природе не существовало - это были скорее "хотелки" на предмет возможного выхода новой версии АТМ усилиями нашей группы "НедоПЦ", основной фишкой которой стала бы схема расширения ОЗУ от Tim0n/AREAsoft из Новосибирска до 2Мб, когда один Мб адресуется по портам АТМ, а второй Мб - по портам Профи. Ну и плюс кое-какие еще фишки. Но тогда не сложилось - мысль разработчиков от "НедоПЦ" ушла гораздо дальше, в результате чего появился уже ZX-Evolution и базовой конфигурации основанный также на архитектуре АТМ. Упоминание о "виртуальной" v7.30 с актуального зеркала сайта я тоже давным-давно убрал. Хотя некоторые идеи оттуда не совсем умерли. В частности, "дополненная подпрограммами TR-DOS" реализовалась в ставшей уже стандартом прошивке xBIOS/vTR-DOS, давно шагнув за первоначальные скромные замыслы, та часть Новосибирской схемы расширения ОЗУ (только не в части портов Профи, а в части регенерации 2-4Мб) и кемпстон-джойстик нашли себя уже в разработанной в Днепропетровске Zorel'ом плате ATM-turbo 3 (v8.0).

Как-то так...

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


Чтобы в режиме АТМ можно было загружаться с IDE вот с этого образа, пока что на данный момент эту задачу я в имеющихся эмуляторах не решил.

Можно спокойно с винтом в эмуле работать. Постараюсь на днях плотнее этим заняться и разъяснить.

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


Ну хочть что-то там должно же с него грузиться? Я уже и на Тасис согласный.

И TASiS с образа нормально идет.

Error404
17.11.2017, 00:25
И TASiS с образа нормально идет.

Куда идет то?
Запускаю эмулятор -> "Checking auto boot... None" (ждет 8 сек.) -> вываливается Меню Спектрума128
Запускаю эмулятор -> Жму Space ("Setup") -> Boot.FromIDEMaster -> вываливается в TrDOS

Максагор
17.11.2017, 01:08
Куда идет то?
Запускаю эмулятор -> "Checking auto boot... None" (ждет 8 сек.) -> вываливается Меню Спектрума128
Запускаю эмулятор -> Жму Space ("Setup") -> Boot.FromIDEMaster -> вываливается в TrDOS

Значит или не обнаружен винт, или не обнаружен загрузчик iS-DOS/TASiS (CP/M с винта подхватывается автоматически, если обнаружен загрузчик, после входа в опцию CP/M).
Кстати, если подсоединен образ винта, то это еще ничего не значит. Необходимо в настройках (либо в текстовом файле настроек, либо уже в запущенном эмуле в конфигурационном меню) прямо указать его параметры - чисто цилиндров, головок на цилиндр и секторов на дорожку. Иначе ничего не пойдет.

На выходных постараюсь изготовить образ с установленными CP/M и TASiS (у меня есть для всяких экспериментов, то я сделаю специальносв минимальной и понятной конфигурации) и опишу по возможности, как хранятся конфигурации.

Error404
17.11.2017, 14:17
Кстати, если подсоединен образ винта, то это еще ничего не значит. Необходимо в настройках (либо в текстовом файле настроек, либо уже в запущенном эмуле в конфигурационном меню) прямо указать его параметры - чисто цилиндров, головок на цилиндр и секторов на дорожку. Иначе ничего не пойдет.


Это я не делал, т.к. откуда мне знать геометрию винта с которого делался образ? Тут вариант только если это где-то хранится на самом диске. А вообще - прошлый век. :) Неужели до сих пор на LBA не переделали? Не верю. Современные винты в CHS-адресацию не пролезают тупо по объему. Или режим LBA поддерживается и его просто надо где-то включить? В конфиге Унрила же упоминается и LBA-нумерация тоже.
Если же CHS тупо в размер подогнать, то там 100500 вариантов сочетаний количества секторов/дорожек/голов. Ну я оставил в INI то что там было для какого-то примера написано.

Максагор
17.11.2017, 20:47
Это я не делал, т.к. откуда мне знать геометрию винта с которого делался образ?

Ну, тут надо автора образа спросить.


Тут вариант только если это где-то хранится на самом диске. А вообще - прошлый век.

Образом винта для UNREAL-эмулятора служит ЛЮБОЙ файл с расширением HDD, вне зависимости от внутреннего содержимого, с которым уже работают через эмулируемые IDE-порты собственно спектрумовские программы, как в ПЗУ (типа загрузчика), так и прочий софт. Там в образе некуда прописывать внтренние данные. Так что все пропиши в INI или укажи тупа в менюшке. А вообще - тогда можно сказать, что и сам спектрум - прошлый век. Так чего прежде всего эмулятору эмулировать - CHS-адресацию или что-то иное? Но вообще эмуль умеет и LBA и CHS. Просто лучше всего прописать и то и другое, а CHS - прежде всего. Так как львиная доля старого спекки-софта работает прежде всего с ней.


Современные винты в CHS-адресацию не пролезают тупо по объему.

Между прочим, даже наисовременнейшие винты умеют и CHS. Причем, прежде всего важны именно параметры секторов и головок. Так как если на древних винтах (примерно до Гигабайта объемом) действительно они имели разные значения, то если вы подключите к реальному спектруму любой современный винт и софтом, работающим с CHS-командами (например, FDISK.COM в CP/M) попробуете считать его паратметры, то получите 63 сектора по 512 байт каждый на дорожку и 16 головок (т.е. 16 дорожек) в цилиндре. Ну а число собственно цилиндров уже будет колебаться в зависимости от ёмкости самого винта. Естественно, CHS-адресацией можно адресовать только до чуть менее чем 32GB объёма винта, ибо максимальное число цилиндров (при 16 головках и 63 секторах) при такой адресации равняется 65536, и дает там именно такой объем, а все, что выше можно достать только через LBA. Правда сразу скажу, что в свое время на больших винтах проводил опыты и через упомянутый FDISK считывал параметры с больших винтов вплоть до 40GB объемом, и максимальное число цилиндров, которое показывала программа, равнялась 16384, что дает нам только 8GB доступного объема. Правда, я не знаю - это в данном случае именно данные железа, или ограничение самой софтинки - может быть там два верхних бита данных обнуляются? Но в любом случае, для работы со спектрумом даже 8Gb более ем достаточно. Ибо насколько я активно занимаюсь (с перерывами) спектрумом, все равно забил винт только примерно на Гигабайт (включая архив MOD-музыки), хотя это и не предел, но все же.

Кстати, под TASiS есть оба вида драйверов - как под CHS, так и под LBA, но по умолчанию в дистрибутиве стоят дрова CHS, потому что у той же CP/M дрова вшиты в ATM-овскую ПЗУху, аони умеют пока только CHS, и для избежания коллизий между системами на одном винте лучше одновременно использовать CHS и там, и там.


Если же CHS тупо в размер подогнать, то там 100500 вариантов сочетаний количества секторов/дорожек/голов. Ну я оставил в INI то что там было для какого-то примера написано.

Если предположить, что образ делался не на древнем винте, а хотя бы на винте с размером гиг или больше (или вообще образ изначально был создан на ПиСи и забит софтом через эмуль), смело вводи H=16 и S=63, а число C высчитай, исходя из объема образа по формуле целое число из Объём/(512*63*16). Число секторов для LBA тогда можно высчитать просто помножив C*H*S.

Кстати, стабильно образ винта работает на UNREAL версий 0.34 и 0.35. На 0.38 и его подверсиях винт то "ловится", то не "ловится", и я до конца еще не понял, в чем проблема. Так что для экспериментов (чтобы хотя бы винт заработал) бери проверенную версию, она на сайте ATM есть.

Если все правильно сделано, и система TASiS правильно установлена на винте, то должна произойти загрузка. Но есть вероятность (так как мы не знаем, кто и как создавал образ), что система или не установлена нормально на винт, или раздел создан правильно, система залита, но не был создан и прописан в конфиг загрузчик системы. Тогда, чтобы убедиться, что винт как железяка к эмулю все же правильно подконнекчен, лучше воспользоваться загрузочной дискетой CP/M (например, вот - http://atmturbo.nedopc.com/download/cpm/system/boot/bootdisk.zip), войти в опцию CP/M, предварительно вставив ее, и после загрузки с флопа, запустить оттуда уже упомянутую утилиту FDISK, которая должна вывести параметры винта CHS и прочую служебную инфу. Если они будут НЕНУЛЕВЫЕ, значит винт подключен, а дело просто в неправильной установке автостарта TASiS.

Как я уже писал, постараюсь на выходных создать отдельный гарантированно образ, записать туда в рабочем состоянии и CP/M и TASiS и кинуть сюда. А пока, если невтерпеж, попробуйте поэкспериментировать с имеющимся образом, следуя моим вышеописанным инструкциям.

Error404
17.11.2017, 23:34
Если предположить, что образ делался не на древнем винте, а хотя бы на винте с размером гиг или больше (или вообще образ изначально был создан на ПиСи и забит софтом через эмуль), смело вводи H=16 и S=63, а число C высчитай, исходя из объема образа по формуле целое число из Объём/(512*63*16). Число секторов для LBA тогда можно высчитать просто помножив C*H*S.

Кстати, стабильно образ винта работает на UNREAL версий 0.34 и 0.35. На 0.38 и его подверсиях винт то "ловится", то не "ловится", и я до конца еще не понял, в чем проблема. Так что для экспериментов (чтобы хотя бы винт заработал) бери проверенную версию, она на сайте ATM есть.

Как я уже писал, постараюсь на выходных создать отдельный гарантированно образ, записать туда в рабочем состоянии и CP/M и TASiS и кинуть сюда. А пока, если невтерпеж, попробуйте поэкспериментировать с имеющимся образом, следуя моим вышеописанным инструкциям.

Тот образ что я упоминал по ссылке в формулу не помещается (его размер 69*369*344), угадывать не стану подожду твоего проверенного образа



Кстати, под TASiS есть оба вида драйверов - как под CHS, так и под LBA, но по умолчанию в дистрибутиве стоят дрова CHS, потому что у той же CP/M дрова вшиты в ATM-овскую ПЗУху, аони умеют пока только CHS, и для избежания коллизий между системами на одном винте лучше одновременно использовать CHS и там, и там.


CHS давно уже не несет никакой информации о геометрии (ни в каком винте нет 8 блинов чтобы иметь 16 реальных головок), а является лишь неудобным конвертируемым представлением LBA втиснутым в его 28 бит (действительно, зачем пользователю помнить про какие-то деления комплексного адреса на имитируемые физические компоненты, если файловые системы все равно используют сквозную адресацию - т.е. двойная трансляция для CHS). Но винты ее эмулируют, не уверен все ли (в частности, работающие через LBA48).

Тут стал я вспоминать почему на Орионе отказался от CHS-адресации (давно дело было) хотя она в начале у меня была. Думаю это потому было сделано потому, что даже самые древние винты (я проверял на винтах на сотню с чем-то Мб выпуска начала 90-х) понимают LBA, и при этом применение CHS-адресации позволяет иметь MBR-разметку только до 8Гб (там в записях разделов 24-битный адрес CHS, а вот LBA-32 битный, с запасом).

Возможно будет правильно если модераторы отделят сообщения о разметке образов ATM в отдельный тред.

Максагор
23.11.2017, 14:07
Тот образ что я упоминал по ссылке в формулу не помещается (его размер 69*369*344), угадывать не стану подожду твоего проверенного образа


Можно об этом поподробнее? В BIOS (который типа setup по space) надо ручками где-то указать с какого сектора грузиться? Может поэтому у меня не загружается ничего - я только в INI эмулятора прописал имя файла с образом диска, и затем в BIOS тупо нажимаю "грузить с HDD" ибо приучен к хорошему. И как по конкретному файлу образа понять с какого сектора надо грузиться?

Выложил на сайте АТМ образ винта с предустановленными ОСями. За ссылками и обсуждениями сюда:
http://zx-pk.ru/threads/28456-obraz-vinta-ide-hdd-pod-atm-turbo-2-obsuzhdenie.html

L Juriy
05.07.2018, 19:28
b2m,
Можно ли создать конфигурацию для ЮТ88 по схеме Павла Рябцева?
Как подключить два дисплея, одновременно? Вернее дисплей и индикатор.

b2m
06.07.2018, 09:01
Можно ли создать конфигурацию для ЮТ88 по схеме Павла Рябцева?
Можно, наверное. Я не следил за теми темами. В чём её отличие?


Как подключить два дисплея, одновременно? Вернее дисплей и индикатор.
Пока никак. Не предусмотрено. А как нужно, в одном окне, или в разных?

MacBuster
06.07.2018, 09:17
Можно ли создать конфигурацию для ЮТ88 по схеме Павла Рябцева?
Рябцова. Он не схемы делает, а платы по готовым схемам. И тот ЮТ, если имеется ввиду «все в одном», сделал Prusak.

L Juriy
06.07.2018, 13:59
b2m,
В разных. У ЮТ88 может быть дисплей и индикатор. В одном окне они появляются, накрывая друг друга и "соревнуясь".
По отдельности они работают а вот совместить их для одновременной работы.
Как подключить ROM диск и SD карт?
Под схемой Павла я подразумевал схему его сделанной платы, а она отличается от схемы Прусака и сильно.
В ней уже присутствуют ишибки Прусака и добавлены ошибки Рябцева.
Сижу правлю схемы, затем будем резать плату.

MacBuster, Я знаю что из чего делалось. Смотри выше про схему.

b2m
06.07.2018, 14:17
Как подключить ROM диск и SD карту?
Если сравнить конфигурации "Radio-86RK" и "Radio-86RK romdisk", то можно заметить, что для ROM диска обычно добавляют (или используют имеющуюся) ВВ55, а также ПЗУ:

romdisk : Memory {
rom="Radio\romdisk.rom"
romselect="Change external ROM"
romfiles="ROM files (*.rom)|*.rom"
}

app : K580ww55 {
portA=romdisk.data
portB=romdisk.lsb
portC=romdisk.msb
}

mm : MemMap {
map[0][0000-7FFF]=mem1[0000]
map[0][8000-9FFF]=sys.data
map[0][A000-BFFF]=app.data
map[0][C000-DFFF]=crt.data
map[0][E000-FFFF].wo=dma.data
map[0][F000-F7FF].ro=bios[0000]
map[0][F800-FFFF].ro=bios[0000]
}


Насчёт SD карты, там немного сложнее, т.к. есть разные типы интерфейсов.

L Juriy
06.07.2018, 15:49
b2m, Это я смотрел и написал в конфигурацию, но что то не работает. Буду разбираться.
А насчет SD то схема на АВР-ке подключенная к ВВ55.
Схему Прусака с описанием адресов и функций можно посмотреть Здесь (https://cloud.mail.ru/public/3jKq/EmzvPbvv1).
На плате добавлены клавитаура на АВР 48 и СД на АВР8.Индикация выведена на разьем.
В схеме используется регистр конфигурации. Как его описать в файле конфигурации, чтобы получить нужную конфигурацию распределения памяти.
Короче куча вопросов, нудно какое нибудь описание для создания этого файла.

b2m
06.07.2018, 18:12
Это я смотрел и написал в конфигурацию, но что то не работает.
Там адрес регистра ВВ55 инвертирован, обрати внимание.


А насчет SD то схема на АВР-ке подключенная к ВВ55.
Нестандарт. Нужно разбираться.


Схему Прусака с описанием адресов и функций можно посмотреть Здесь (https://cloud.mail.ru/public/3jKq/EmzvPbvv1)
Могу в выходные попробовать сделать конфиг. А ПЗУ уже где-то можно скачать? Или его ещё нет?

L Juriy
06.07.2018, 20:49
Здесь (https://cloud.mail.ru/public/MVJY/1GD77mFmM)посмотри. которая все в одном.
Я все пытаюсь собрать в одном месте именно по этой ссылке.
К схеме Прусака добавлена ВВ55 для работы с СД имеющая адреса F8H-FBH.
И еще вот такое устройство (http://zx-pk.ru/threads/28958-kontroller-usb-klaviatury.html) как можно сконфигурить.

b2m
06.07.2018, 22:40
которая все в одном
Это которое вот отсюда (http://zxbyte.ru/ut88.htm)?


И еще вот такое устройство как можно сконфигурить.
Ну не, это уже слишком круто, даже для моего эмулятора. У меня же не proteus :)

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

Пробный вариант конфига "UT-88 Prusak edition": UT88_Prusak.zip (http://bashkiria-2m.narod.ru/files/UT88_Prusak.zip)
В архиве два ROMа, отличия в Монитор-F. Второй вариант пишет про какой-то SROM.

L Juriy
07.07.2018, 06:16
b2m,
Да. Чуток подправленный.

Надо стремиться к лучшему.:wink:
За конфиг спасибо, попробую, отпишусь.

L Juriy
07.07.2018, 11:07
b2m, Попробовал твою конфигурацию, работает нормально.
Использовать нужно тот образ ПЗУ на который я ссылался, так как он уже подправлен.
Убраны ошибки в Монитое Ф для команды R.
Добавлена новая команда Х(вместо старой) которая загружает оболочку с ROM диска.
Эта оболочка работает с Орион сервером по последовательному порту. Все это здесь (http://zx-pk.ru/threads/27822-ds-card-ut-orichan-orinet-etc.html).
Также исправлены пара ошибок в ОС ЮТ88, но похоже еще есть ошибки. Будет время подправлю.
Для Монитоа0 нужен индикатор от ЮТ-мини и его клавиатура.

Denn
18.12.2018, 14:35
b2m, приветствую.

Сегодня нашёл непонятный глюк в эмуляции ОРИОН'ов (128 и ПРО)!

При запуске исполняемого кода во второй странице ОЗУ, попытка исполнения команды LHLD <addr> приводит к порче содержимого этой самой второй страницы в произвольном месте. Места порчи зависят от <addr>, но какой-то явной корреляции со значением адреса я не увидел. Например, чтение по адресам 8003..8006h дают один и тот же глюк ПО, по адресу 8002h глюк не проявляется, по 8000..8001h или 0000h вообще всё виснет ((

Замена в исполняемом коде инструкции "LHLD <addr>" на пару LDA <addr> и LDA <addr+1> работает без глюков. Для проверки пробовал менять LHLD на SHLD - глюка нету!!! Т.е. проблема только в команде LHLD (2A xx xx).

П.С.: в конфигурациях "128" и "ПРО" адреса порчи несколько отличаются, если это как-то может помочь следствию :)

П.П.С. сложность ещё заключается в том, что глюк высекается при определённом предшествующем коде (или м.б. содержимом ОЗУ ?), т.е. если написать прицельную прогу:

ORG 8000h
LHLD 8006h
RET

то глюканат не проявляется (а может где-то что-то портится, но не попадает в область, где можно заметить).

П.П.П.С. менять ORG кода, перемещать команду в теле кода, менять адрес параметра LHLD пробовал - глюк всегда проявляется.

П.П.П.П.С. исполнение данного кода на реале ещё не проверял, но уверен, что там будет всё ок.

b2m
18.12.2018, 15:15
При запуске исполняемого кода во второй странице ОЗУ
Мне будет гораздо проще, если ты дашь какой-то реально глючащий код и способ его запуска.

Denn
18.12.2018, 17:02
b2m, дичайше извиняюсь, мой косяк! Анализ изменения содержимого ОЗУ после глюка всё прояснил, в рандомную область загружалось содержимое temp-файла, случайно закомментировал инициализацию переменной, получился очень хитро размазанный по большому участку кода глюк =)

П.С. эмуль рулеззз!

b2m
18.12.2018, 17:24
Бряк в окне дампа (на доступ к байту в ОЗУ) иногда многое проясняет.

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


дичайше извиняюсь, мой косяк!
Я, собственно, с самого начала полагал :)

svofski
30.06.2019, 12:33
b2m, открываю файл .ok для Океана-240 через File->Open. Открывается и запускается. Пробую сделать то же самое еще раз, и эмулятор падает. Иногда падает и в первый раз. Windows 10 Pro, эмулятор скачал сегодня.

ivagor
30.06.2019, 12:41
У меня при запуске .ok тоже часто падает, закономерности никакой не установил.

b2m
30.06.2019, 20:15
Поправил, надеюсь проблема пропала...

svofski
30.06.2019, 20:45
Форум теперь не даёт нажать спасибо, но спасибо!

Тут tnt23 застенчиво спрашивает, а не планируется ли сделать поддержку синхронизации с кадровой разверткой? Просто любопытство, никаких намеков.

b2m
30.06.2019, 21:18
Большинство ПК имеет кадровую 50Гц, а современные мониторы в большинстве своём 60Гц. Мне кажется - фигня получится.

ivagor
30.06.2019, 21:22
Напряг свои телепатические способности и у меня появилось смутное ощущение, что tnt23 скорее про поддержку в эмуляторе двух младших бит порта 41h (или хотя бы одного из них, который про кадр).

b2m
30.06.2019, 21:23
Кстати, в полноэкранном режиме вроде бы DirectX сам делает синхронизацию, т.е. Flip делается синхронно с кадровой развёрткой. Помнится мы с ivagor-ом тестировали это, я на примере какой-то игрушки для MSX, а он вроде как-то 50Гц у своего монитора получил и что-то векторовское запускал.

ivagor
30.06.2019, 21:26
Но тогда у меня emu мог нормально работать в полноэкранном режиме, теперь это в прошлом.

svofski
30.06.2019, 22:06
Я тоже думаю, что речь идет о битах. Совпадение с реальной разверткой монитора хоста при этом второстепенно.

Что до сведения с реальной разверткой, это тоже не то что бы невозможно. Нужно выдерживать каденс. Например, если 60 Гц, то каденс 1-1-1-1-1-0. Настоящие 50Гц так не сделаешь, но в среднем частота кадров будет держаться адекватной и монотонной.

Doronetty
01.07.2019, 02:52
Не знаю насчёт мониторов, у например меня уже лет 10 как заместо монитора ЖК телевизор по HDMI подключен с частотой 50 Гц (как раз чтобы скроллы плавно бегали)...

tnt23
01.07.2019, 09:18
Напряг свои телепатические способности и у меня появилось смутное ощущение, что tnt23 скорее про поддержку в эмуляторе двух младших бит порта 41h (или хотя бы одного из них, который про кадр).

Да, я про это самое. Сейчас приходится переключаться между двумя версиями кода, одна для реала с обычным ожиданием гасящего импульса, вторая для эмулятора без (и там времянки другие получаются).

b2m
01.07.2019, 09:28
тогда у меня emu мог нормально работать в полноэкранном режиме, теперь это в прошлом
Выяснить бы, в чём проблема, и починить. Но у меня вроде всё нормально.

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


про поддержку в эмуляторе двух младших бит порта 41h
Кстати, откуда пришла информация про эти биты? Я когда делал Океан, судя по всему, не нашёл их описания.

tnt23
01.07.2019, 10:13
Кстати, откуда пришла информация про эти биты? Я когда делал Океан, судя по всему, не нашёл их описания.

Из журнальной статьи:

69423

b2m
01.07.2019, 10:16
Наверное отложил на потом и забыл про это. Кстати, есть информация по таймингам? Вы с ivagor-ом вроде какие-то тесты делали?

tnt23
01.07.2019, 10:47
Наверное отложил на потом и забыл про это. Кстати, есть информация по таймингам? Вы с ivagor-ом вроде какие-то тесты делали?

ivagor проделал могучую интеллектуальную работу, выжимка из которой вот:

320 строк, 384 LoRes точки / 768 HiRes точек в строке, 153.6 такта процессора в строке, 49152 такта процессора в кадре

Процесс изысканий со слайдами тут - https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=1000201&viewfull=1#post1000201

ivagor
01.07.2019, 14:35
Геометрию экрана установили, а вот точное положение и длительность гс и гк - нет. tnt23, их анализатором или осциллографом стоит посмотреть. Ну или надо разобрать работу D24-D27.

ivagor
01.07.2019, 17:12
тогда у меня emu мог нормально работать в полноэкранном режиме, теперь это в прошлом.
Исправляюсь - работает, но нормальные цвета показывает только в режимах:
main.fullscreen=640x480x16
main.fullscreen=640x480x32
main.fullscreen=800x600x16
main.fullscreen=800x600x32
во всех случаях
main.fullscreen.scale.x=1
main.fullscreen.scale.y=1
Монитор/телевизор с разрешением 1920x1080, видео - intel встройка hd2500. Пропорции у перечисленных режимов на этом мониторе те еще, и выбор режима 4:3 на мониторе/ТВ не делает совсем хорошо.

svofski
01.07.2019, 17:47
Переход в фуллскрин, судя по побочным эффектам, переводит весь десктоп в один из этих режимов, окна потом приходится поднимать одно за другим и помогать вытряхивать из ушей песок. Мне это не критично, но если где-то есть гистограмма востребованных фич, мои +1 в ячейку неприкосновенности десктопного разрешения.

tnt23
01.07.2019, 21:19
Геометрию экрана установили, а вот точное положение и длительность гс и гк - нет. tnt23, их анализатором или осциллографом стоит посмотреть. Ну или надо разобрать работу D24-D27.

Постараюсь снять эпюры.

tnt23
18.09.2025, 08:23
b2m, можешь подсказать, что нужно прописать в конфиге для доступа к эмулируемому интерфейсу RS-232 через TCPIP?

Смотрю в конфигурацию 'Bashkiria-2M rom.cfg':


comport : K580ww51 {
connect="tcp:15015:127.0.0.1"
}

CPU : K580wm80a {
mem=mm
port[00-03]=tim.data
port[04-07]=ext.data
port[08-0B]=sys.data
port[0C]=comport.netid
port[10-13]=vid.palette
port[14-15]=intctl.data
port[18-19]=comport.data
portmask=1F
int=intctl.int
}


Как вообще все это работает? Что такое netid, connect?

PS нашел пример в сообщении #post761141, попробую

PSS Речь об "Океане-240". Передача байта из эмулятора в сокет работает, по крайней мере без проверки регистра статуса ВВ51, просто запись в регистр данных.

А вот с приемом засада. Стандартная процедура BIOS по приему символа из ВВ51 крутится в цикле чтения регистра статуса, ожидая установки бита 1 (RxRDY):

82809

b2m
18.09.2025, 09:54
connect - определяет номер порта и куда соединяться, если указан только номер порта, то это будет сервер. Пока только tcp и pipe (внутреняя связь, до 10 линий, название или аргумент может поменяться, ввиду того, что аналогичный объект существует и в ОС), планировались и другие виды связи (mailslot, внешняя dll, ...)

netid - сервер у моего эмулятора первым делом посылает номер (id) соединения, а клиент при соединении сразу его хавает и запоминает, этот номер можно считать потом через какой-либо порт (в реале это, например, номер ученического компа, заданный перемычками). Для сервера будет ноль.

tnt23
18.09.2025, 09:58
b2m, понял, спасибо. А почему может не устанавливаться бит готовности RxRDY в регистре статуса ВВ51?


Стандартная процедура BIOS по приему символа из ВВ51 крутится в цикле чтения регистра статуса, ожидая установки бита 1 (RxRDY)

- но получает все время значение 0x85

b2m
18.09.2025, 10:13
Не помню, надо смотреть исходники. Но вроде бы, отсутствие готовности - это когда символ принят только частично, и считывать смысла нет. А у меня всегда байтами передаётся.
Или ты имеешь ввиду, когда буфер пуст и читать нечего?

Если клиент не соеденился, то тоже готовности не будет.
И да, сначала нужно запускать сервер.

Надо бы доработать этот момент. По команде сброса, если соединения ещё нет, клиент мог бы попытаться соедениться ещё раз. А сейчас он делает только одну попытку при запуске.

tnt23
18.09.2025, 10:31
отсутствие готовности - это когда символ принят только частично, и считывать смысла нет. А у меня всегда байтами передаётся

В случае TCP соединения (я хожу телнетом) символ скорее всего принимается целиком. И еще, даже если я проигнорирую бит готовности в регистре статуса, из регистра данных всегда читается 0х03.


Или ты имеешь ввиду, когда буфер пуст и читать нечего?

Когда буфер пуст, тут понятно, что данных нет. Но если символ был принят с линии, он должен по идее храниться в регистре данных до того, как его считает процессор, при этом RxRDY должен взвестись в 1, насколько я понимаю.

Сервер у меня запускается первым (стартую эмулятор), потом подцепляюсь к порту 15015 телнетом. Исправно получаю от эмулятора символ "1" где-то через секунду после соединения.

b2m
18.09.2025, 10:34
Исправно получаю от эмулятора символ "1" где-то через секунду после соединения.
Это тот самый netid. То есть соединение у тебя есть. И что, если в телнете что-то написать, порт статуса не меняется? Странно.

А ты в отладчике смотришь? Может у тебя в окне дампа порты отображаются и символ при отображении съедается?

tnt23
18.09.2025, 10:42
И что, если в телнете что-то написать, порт статуса не меняется?

Статус все так же возвращает 0х85 (DSR, TxEMPTY и TxRDY). И соответственно в регистре данных постоянно значение 0х03 (я в телнете разные кнопки топчу, но ничего не меняется).

Смотрю в отладчике (см. картинку в сообщении №825), окно дампа показывает RAM. Попробую порты посмотреть.

PS может, я неправильно конфигурацию порта прописал? TX работает, а RX нет. Вот она:


CPU : K580wm80a {
mem=mm
port[00-1F]=ppa00.data
port[20-23]=ppa20.data
port[40-5F]=ppa40.data
port[60-7F]=tim.data
port[80-81]=intctl.data
port[A0-A1]=comport.data
port[C0-DF]=ppaC0.data
port[E0-FF]=ppaE0.data
int=intctl.int
}

comport : K580ww51 {
connect="tcp:15015"
}

b2m
18.09.2025, 10:56
Сейчас попробовал, наткнулся на факт, что PuTTY отправляет данные только по Enter. Может твой телнет тоже построчно отправляет?

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

Вообще, с этим tcp есть такая бяка: система копит данные и отправляет только после некоего таймаута. И если этот таймаут больше, чем предусмотрено по протоколу, то ничего не выйдет.
Но к твоему случаю это пока не относится.

tnt23
18.09.2025, 11:03
Сейчас попробовал, наткнулся на факт, что PuTTY отправляет данные только по Enter. Может твой телнет тоже построчно отправляет?

Похоже, в этом дело было! Если в PuTTY нажать кнопки "q" и Enter, программка в эмуляторе принимает все на отлично:


.D1000
1000 71 0D 0A 00 00 00 00 00

b2m
18.09.2025, 11:11
Сам всё время ищу эту опцию: Terminal -> Local line editing
По умолчанию стоит Auto, а обычно надо Force off
Там-же Local echo отключается.

tnt23
25.09.2025, 13:06
b2m, есть ли возможность перетасовать биты цвета для "Океана-240" через конфигурацию?

Сейчас с конфигом по умолчанию имеем такие слезоточивые цвета:

82849

На реале вроде бы они более щадящие:

82850

b2m
25.09.2025, 15:25
Нет. Можешь написать прогу, чтобы она показывала все палитры (т.е. показывала номер, который выводится в порт, и включала эту палитру)? А потом всё сфоткать.
Ну и для цвета фона тоже.

Хотя, у тебя уже вроде есть прога для вывода в порт, можешь её использовать.

tnt23
25.09.2025, 15:46
Сделаю. Пока есть памятка (себе самому):

https://sensi.org/~tnt23/ok240/screen/colors.png

ivagor
25.09.2025, 17:23
Было голосование? Почему все же этот (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997606&viewfull=1#post997606) вариант, не этот (https://zx-pk.ru/threads/29725-quot-okean-240-quot-videovykhod.html?p=997595&viewfull=1#post997595)?

tnt23
25.09.2025, 17:38
ivagor, голосования не было. Это я тут развожу смуту, т.к. цвета, устанавливаемые REL.8 при старте, ну совсем уж неприглядные.

Может, конечно, они подогнаны под не-журнальную перепайку.

Потому я и спросил, нельзя ли переброс выходов R, G, B сделать через конфиг.

ivagor
25.09.2025, 18:39
По моему субъективному мнению у авторов REL8 своя отдельная ветка развития Океана, и не стоит проецировать их решения обратно на авторский вариант. С другой стороны например для Алексея Морозова авторских прошивок как не было, а сразу REL8.
С точки зрения практики я ничего не делаю для Океана, а Алексей еще как делает (ну или делал, может продолжит), поэтому мое мнение можно смело игнорировать.

tnt23
25.09.2025, 22:06
ivagor, мне нужно поднапрячься и загрузить небезызвестный кораблик в REL8. Если цвета будут варварскими, то, выходит, REL8 неканонична и на ее цвета можно смело наплевать.

Update. Сломалось что-то в REL8 в части рисования ESC-последовательностями. Вместо кораблика рисуется невнятная каша и выводится HEX-дамп.

ivagor
26.09.2025, 06:09
И вариант расширения озу авторы REL8 предложили свой. Поэтому по совокупности считаю это отдельной веткой развития Океана.

tnt23
26.09.2025, 09:47
Мои две копейки оффтопика:


И вариант расширения озу авторы REL8 предложили свой. Поэтому по совокупности считаю это отдельной веткой развития Океана.

экземпляр А.Морозова выглядит довольно фабрично (хотя и не так аутентично, как экземпляр azmaster, который (экземпляр), по-видимому, надлежит считать максимально близким к природе). Есть еще редкоземельный промышленный квазиклон "Автограф" (https://raregame.ru/text/ocean240.html), но образами ПЗУ от него и схемой мы пока не располагаем.

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

ivagor
26.09.2025, 10:11
tnt23, задекларирую, что не считаю REL8 (и все, что с ним связано) не тру и порождением зла. Мое видение - REL8 не вместо авторского варианта, а вместе с ним, просится в отдельный конфиг.

b2m
26.09.2025, 10:15
просится в отдельный конфиг
Понятно, значит надо выносить палитру в конфиг.

b2m
28.09.2025, 20:11
Обновил эмулятор. Палитра задаётся по умолчанию такая:

vid : okean-video {
page[0]=mem[C000]
page[1]=mem[4000]

palette[0]=000000
palette[1]=000080
palette[2]=008000
palette[3]=008080
palette[4]=800000
palette[5]=800080
palette[6]=808000
palette[7]=808080
palette[8]=000000
palette[9]=0000FF
palette[A]=00FF00
palette[B]=00FFFF
palette[C]=FF0000
palette[D]=FF00FF
palette[E]=FFFF00
palette[F]=FFFFFF
}

tnt23
28.09.2025, 21:23
b2m, шикарно. Я правильно понимаю, что первые 8 палитр - это цвета фона, а вторые - цвета переднего плана?

b2m
29.09.2025, 09:36
Я правильно понимаю, что первые 8 палитр - это цвета фона, а вторые - цвета переднего плана?
Да. Для 4-х цветных режимов там какая-то таблица перекодировки номеров цветов, не помню где брал, но надеюсь правильная.

shattered
30.10.2025, 20:37
Потестил Insult Megademo (БК-0011М) с последней версией - результат очень порадовал: AY и COVOX теперь удачно сосуществуют и не мешают друг другу!

А как это работает? covox включен в порт данных AY?