Просмотр полной версии : F.A.Q по эмулятору Башкирия-2М
XobbiMan
14.09.2008, 20:18
Предлагаю сюда заносить особенности эмуляции разных машинок в эмуляторе Башкирия-2М (как заводить программы, как подлючать диски и так далее)
(Оставлять ответы ввиде вопрос-ответ, если кто-то собирается написать по какой-то машинке Q-A, но пока все только в процессе, то запостите пустой пост с вопросами, на которые вы в скором времени напишите и ответы)
Итак, начнем...
Q: Как в эмуляторе заводить (записывать) программы для ПК8000 Хобби, Сура, Веста?
A: Ниже представлена подробная инструкция
При запуске эмулятора выбираем нужную конфигурацию для ПК8000:
- "PK8000 Sura and Xobbi" - Эмуляция ПК8000 Сура и Хобби - работа с файлам в CAS-формате
- "PK8000 Sura and Xobbi (cas)"- Эмуляция ПК8000 Сура и Хобби - работа с файлам в WAV-формате
- "PK8000 Vesta"- Эмуляция ПК8000 Веста - работа с файлам в CAS-формате
- "PK8000 Vesta (cas)"- Эмуляция ПК8000 Веста - работа с файлам в WAV-формате
Доступные команды (подробнее в Книга 2, Руководство пользователя "Бейсик"):
Запись:
SAVE "ИМЯ" - запись Бейсик программы в MSX-формате
CSAVE "ИМЯ" - запись Бейсик программы во внутреннем формате
BSAVE "ИМЯ",НАЧАЛО,КОНЕЦ,СТАРТ - запись Бинарной программы
(НАЧАЛО - начальный адрес программы,
КОНЕЦ - конечный адрес программы,
СТАРТ - точка входа в программу)
Чтение:
LOAD "ИМЯ"[,R] - чтение Бейсик программы в MSX-формате
CLOAD "ИМЯ"[,R] - чтение Бейсик программы во внутреннем формате
BLOAD "ИМЯ"[,R] - чтение Бинарной программы
,R - необязательный параметр, указывает чтобы после загрузки - запустить программу
На примере команды CSAVE/CLOAD опишем работу с WAV и CAS
Особенности работы с WAV-формате
Эмулятор записывает вывод на магнитофон прямо в WAV файл:
1. Набираем команду CSAVE "ИМЯ", но не нажимаем Enter
2. В тулбаре жмём на тёмнокрасное пятно (типа - кнопка "запись" магнитофона)
3. Задаёшь имя файла и уже потом сразу нажимаем Enter в ПК
4. После окончания записи ещё раз нажимаем на тёмнокрасное пятно (типа - выключили "запись" на магнитофоне).
Эмулятор считывает файл с WAV как с магнитофона:
1. Набираем команду CLOAD "ИМЯ" и нажимаем Enter
2. В тулбаре есть рядом с тёмнокрасном пятнышком треугольник (типа - кнопка "проигрывать" магнитофона)
3. Задаём имя файла и ждём пока ПК не напишет Found: ИМЯ
4. Если название файла не совпадает, то напишет skip: "ИМЯ"
Особенности работы с CAS-формате
Вывод в CAS-файл:
1. Набираем команду CSAVE "ИМЯ" и нажимаем Enter
2. Открывается диалоговое окно для записи CAS-файла
3. Задаем имя файла и потом нажимаем Enter в ПК
4. Ждем окончания записи
Считывание с CAS-файла:
1. Набираем команду CLOAD "ИМЯ" и нажимаем Enter
2. Открывается диалоговое окно для выбора CAS-файла
3. Выбираем и ждем пока ПК не напишет Found: ИМЯ или сразу не запустить программу
4. Если название файла не совпадает, то напишет skip: ИМЯ
С 16 Сентября 2008 в новой версии Эмуляторе такие изменения насчет ПК8000
Конфигурации только две
- "PK8000 Sura and Xobbi" - Эмуляция ПК8000 Сура и Хобби - работа с файлам в CAS-формате и WAV-формате
- "PK8000 Vesta"- Эмуляция ПК8000 Веста - работа с файлам в CAS-формате и WAV-формате
Как выбрать работу с CAS или WAV файлами - принцип изложенный выше тот же, но
- Если хотим работать с CAS, то на тулбаре не нажимает кнопки магнетофона - тогда все будет как работа с CAS файлами.
- Если хотим записать в WAV или считать с WAV, то вначале вводим команду, но не нажимает Enter, и после выбираем для записи или загрузки WAV (жмеи нужную кнопку тулбаре) и уж после Enter.
(Примечание, позже я перепишу этот help в более коротком и детальном варианте)
Q: Как в эмуляторе для ПК8000 Хобби, Сура или Веста сделать так, чтобы музыка играла в фоновом режиме?
A: Надо в конфигурационый файл ПК8000 добавить третьей строкой
main.globalsound=1
Q: Как ускорить эмулятор?
A: Нажать и удерживать клавишу F9
Напомните, как включить паузу?
Как ускорить эмулятор?
Это верно пока только для Вектора, хотя добавить клавишу в Layout и её назначение в конфиг можно практически везде.
не только можно но и нужно, желательно не только ускорение но и замедление.
Q: Как загрузить Вектор-06Ц с образа дискеты, если клавиатура не понимает одновременное нажатие клавиш F1+F2+F11?
A: ?
(Мой вариант - заслать казачка в виде мертвого квазидиска, тогда загрузчик проваливается в следующее по приоритету устройство. Но должен же быть более гуманный способ?)
Q: Как изменить раскладку клавиатуры для Вектора-06Ц? Например, чтобы клавиши управления курсором на PC соответствовали клавишам курсора на Векторе.
A: В файле layout.kbd надо переписать клавиши left, right, up, down на x-left, x-right, x-up, x-down.
XobbiMan
20.03.2009, 20:52
Q: Как загрузить программы или начать работать с ПК Юниор?
A: Ввести команду I, выбрать образ кассеты *.bt - появится заставка, дальше используем простые OS команды, например
B: (смена диска на другой)
DIR (список файлов)
и вводим название программы для запуска (без расширения)
(если хотим ускорить загрузку - воспользуемся клавишей F9)
сделайте ещё памятку как загружать программы для вектор-старт.
ничего у меня не получилось загрузить, открываю образ пишу mload и ничего...
Загрузка программ для ПК Вектор Старт-1200 (конфигурация Vector-1200):
Загрузка файлов с расширением rk (формат Монитор-1200)
В мониторе I, Enter - в диалоге открытия файла выбираем нужный, после загрузки T, Enter.
Загрузка файлов с расширением rkb (формат Basic-1200)
В бейсике MLOAD, Enter - в диалоге открытия файла выбираем нужный, после загрузки RUN, Enter.
Для успешного запуска игры "Удавчик" (или как ее обозвал b2m - snake) перед запуском бейсика в мониторе надо подать команду #5000. Еще один положительный эффект от этой команды - бейсик стартует сразу, без рисования заставки.
а, так для того чтоб загрузить файлы *.rkb я должен сначала загрузить бейсик basic-1200.rk
так ?
а, так для того чтоб загрузить файлы *.rkb я должен сначала загрузить бейсик basic-1200.rk
так ?
Именно так.
shapipovo
26.03.2009, 17:13
Как в Юниоре перейти и загрузить допустим диск c:
Можно добавить в эмулятор еще несколько страниц памяти? Интересно возрастет размер а:, или каждая страница будет дополнительным виртуальным диском
Как в Юниоре перейти и загрузить допустим диск c:
Нужно "сменить кассету", т.е. нажать на тулбаре "воспроизведение" два раза (первый выкинет кассету, второй откроет окно с выбором файла).
Можно добавить в эмулятор еще несколько страниц памяти? Интересно возрастет размер а:, или каждая страница будет дополнительным виртуальным диском
Можно, файл конфигурации изменить так:
...
mem1 : Memory {
size=80000
}
...
dmm : MemMap {
map[0][0000-FFFF]=mem1[00000]
map[1][0000-FFFF]=mem1[10000]
map[2][0000-FFFF]=mem1[20000]
map[3][0000-FFFF]=mem1[30000]
map[4][0000-FFFF]=mem1[40000]
map[5][0000-FFFF]=mem1[50000]
map[6][0000-FFFF]=mem1[60000]
map[7][0000-FFFF]=mem1[70000]
}
...
Однако размер диска А: почему-то всё равно максимум 128Кб
sergey2b
04.07.2010, 00:19
подскажите пожалуйста как можно загрузить бинарный файл в эмулятор РК86 ?
конечная цель отладить свою программу
b2m, Можно ли поподробнее о конфигах узнать? Что к чему и с чем едят... :)
Это-ж сколько писать надо будет!
Знаю, что нехватает документации, я и сам иногда в исходники лезу, чтобы узнать, что там к чему :) Вот соберусь с духом, и наберу.
b2m, есть парочка вопросов по эмулятору "Ириши", точнее по конфигу.
Сначала первый, второй позже...
Возможно ли описать эту структуру
bios : Memory {
rom="Irisha\irisha.rom"
}
В другом виде. Необходимо следующее.
Содержимое ПЗУ описывать не одним бинарником, а двумя (тремя и т.д.)
Например:
bootm (0000-1FFF) + conout (2000-3FFF)
И как продолжение, развитие вопроса следующий вариант:
boot (0000-07FF) + conout (2000-3FFF)
Смысл думаю понятен.
Если возможно, то поясните, пожалуйста, как мне это сделать. Вопрос не ради праздного любопытства. :)
Можно описать так:
bootm : Memory {
rom="Irisha\bootm.rom"
}
conout : Memory {
rom="Irisha\conout.rom"
}
и изменить раскладку памяти:
mm : MemMap {
map[0][0000-1FFF]=bootm[0000]
map[0][2000-3FFF]=conout[0000]
map[0][4000-FFFF]=mem1[4000]
map[1][0000-FFFF]=mem1[0000]
map[2][0000-FFFF]=mem1[0000]
map[3][0000-FFFF]=mem1[0000]
}
А для варианта boot (0000-07FF) + conout (2000-3FFF)
Процессор эмулятора в промежутке 0800-1FFF будет видеть FF?
Ещё один вопрос, сложный на вечер оставлю - сформулировать надо.
Реализована ли возможность подключения образа "дополнительного ПЗУ". По аналогии с тем, что находится на плате расширения? Если да, тот как?
В книге упоминается "расширитель ПЗУ" и "дополнительное ПЗУ". Первое ничем не отличается от внутреннего и может быть подключено аналогично. А вот дополнительное ПЗУ (со счётчиком адреса) пока не реализовано, и правкой конфига его не сделаешь.
А вот дополнительное ПЗУ (со счётчиком адреса) пока не реализовано, и правкой конфига его не сделаешь.
Это и интересует. Как скоро получится реализовать? Считает ведь программа. Главное реализовать интерфейс через порты ППА. Или я заблуждаюсь?
А,... точно... необходимо же ещё прикрутить счётчики с обвязкой. :)
I found interesting thing in EMU 1.01 (Башкирия-2М) on WinXP SP2 NTFS file system. From emu Orion-Pro 2 possible access to real disk or folder on Windows XP :-):
Need these files:
Emulator EMU 1.01 (http://bashkiria-2m.narod.ru/files/emu.rar)
Orion DISK1.ODI (http://bashkiria-2m.narod.ru/files/disk/Orion.rar)
Orion Pro DISK01P.ODI (http://bashkiria-2m.narod.ru/files/disk/OrionPro.rar)
Korvet disk.kdi (http://bashkiria-2m.narod.ru/files/disk/Korvet.rar)
1. Unpack EMU and files e.g. on Desktop
2. Run EMU, select Orion-Pro 2 and from red menu select Orion-PRO
3. Now have error: BDOS ERR ON A: SELECT
4. In drive 1 mount file DISK01P.ODI and press Enter. If still error displayed try mount one more time this file. Must be prompt A>
5. Now run Norton Commander, type nc and press Enter
6. Press TAB to go to right window nc
7. In drive 2 mount file DISK1.ODI, press D and select disk B
8. In drive 2 mount file disk.kdi (selecting All files), press D and select disk B
In this moment in right window Norton Commander is access to real folder on PC - Desktop in this example :-) and possible change file name, delete files etc.
41850
Please Comment!
Для некоторых компьютеров есть поддержка формирования образа диска из выбранных файлов, если выбирать фильтр "All files".
Error404
30.05.2013, 15:43
In this moment in right window Norton Commander is access to real folder on PC - Desktop in this example :-) and possible change file name, delete files etc.
41850
Please Comment!
При удалении файлов на Орионовском диске реально удаляются живые виндовозные файлы?
Yes, path B:\User 0 in NC right panel emulator Orion is path in Windows C:\Documents and Settings\user_name\Desktop
Path in right panel NC = path where is disk.kdi file located. In my case file disk.kdi is on Desktop.
Possible delete, rename files etc.
hantarex
19.03.2014, 09:30
Как подключить устройство от одной машинки к другой?
Например винт с Вектора к ПК8000? просто скопировать из конфига номера портов и имя образа винта?
кажись и правда достаточно скопировать номера портов и имя образа винта:)
скопировал номера портов, имя образа, читаю из 57Н - выдает 01010000b - вроде винт готов:)
этож какие перспективы открываются:)
Чаще всего, действительно, достаточно скопировать связанные друг с другом фрагменты из одного конфига в другой. Правда, иногда не всё так очевидно как кажется. Если сразу не получилось, то скорее всего потребуется моя консультация :)
hantarex
20.03.2014, 15:22
кстати, команда ЕС не пашет:( точнее, пашет криво.
hantarex
27.03.2014, 12:19
почему в конфигурации с квазидиском дико тормозит утилита power?
почему в конфигурации с квазидиском дико тормозит утилита power?
Конфигурации какого компьютера?
hantarex
27.03.2014, 12:57
конечно же мой любимый ПК8000:) был уверен, что вы - экстрасенс:)
сильно тормозит ввод в утилите power в KDOS.
Там вроде в биосе CP/M для определения, нажата ли какая-либо клавиша, неправильная п/п вызывается. Не помню, из каких доков брал адрес вектора п/п в ПЗУ. Давно это было.
Improver
27.09.2019, 13:59
b2m, пытаюсь сделать конфигурацию эмулятора для Вектора-06ц с двумя квазидисками, оба диска совершенно идентичны, первый висит на стандартном порту 10h, второй пусть будет подключён к порту 11h. Без описания сложно понять, как это надо делать, взял стандартную конфу и пробовал по всякому, вот, например, один из вариантов:
main.CPUClock=3MHz
main.Caption="Vector-06c 2КД"
main.ff.speed=10
main.ff.keymask[8]=20
main.scale.x=100%
main.scale.y=150%
main.globalsound=1
main.fullscreen=1280x1024x16
main.fullscreen.scale.x=2
main.fullscreen.scale.y=3
CPU : K580wm80a {
debug=cas
debug=gate
mem=ramdisk
port~[00-03]=sys.data
port~[04-07]=ext.data
port~[08-0B]=mtim.data
port[0C-0E]=vid.color
port[0F]=port0F
port[10]=ramdisk.page
port[11]=ramdisk2.page
port[14]=AY.data
port[15]=AY.regno
port~[18-1B]=dsk.data
port[1C]=dskctl.data[0]
port[20]=clock.regno
port[21]=clock.data
port[50-5F]=hdd.data
port[ED]=gate.call
rst[7]=vid.irq
adjust=4
}
port0F : Register {
read=ramdisk.port0F
write=vid.color
}
mem1 : Memory {
size=10000
}
bios : Memory {
rom="Vector06c\vector.epr"
romselect="Change ROM BIOS"
romfiles="Vector BIOS files (*.epr)|*.epr"
icon=1
}
extrom : Memory {
rom="Vector06c\vector.emr"
romselect="Change external ROM"
romoffset=100
romfiles="ROM files (*.rom)|*.rom"
}
sys : K580ww55 {
portA=kbd.~mask
portB=kbd.~data
portC[0]=cas.record
portC[4]=cas.playback
portC[5-7]=kbd.~data2
}
ext : K580ww55 {
portA=extrom.lsb
portB=extrom.data
portC[0-6]=extrom.msb
}
ramdisk : V06c-MemMap {
cpustate=cpu.state
rom=bios[0000]
stdmem=mem1[0000]
ramdisk="Vector06c\vector.edd"
}
ramdisk2 : Memory {
ramdisk2="Vector06c\vector2.edd"
}
kbd : Keyboard {
layout="Vector06c\layout.kbd"
}
vid : V06c-Video {
mem=mem1[8000]
scroll=sys.portA
control=sys.portB
ruslat=sys.portC[3]
palette.default="80802D2D80802D2D80802D2D80802D2D"
}
mtim : K580wi53 {
clock[0].rate=1/2
clock[1].rate=1/2
clock[2].rate=1/2
gate[0].value=1
gate[1].value=1
gate[2].value=1
}
AY : AY-3-8910 {
freq=1773400
input=sys.portC[0]
input[0]=mtim.out[0]
input[1]=mtim.out[1]
input[2]=mtim.out[2]
}
dsk : KR1818wg93 {
image[0].file="Vector06c\lines.fdd"
image[1].file="Vector06c\stmpro.fdd"
drive[0].tooltip="A:"
drive[1].tooltip="B:"
ext="fdd"
vdpb="2800040F0085017F00C00020000800"
vdpb.boot="Vector06c\lines.fdd"
}
dskctl : K580ww55 {
portA[0]=dsk.drive[0].~on
portA[0]=dsk.drive[1].on
portA[2]=dsk.side[0]
}
cas : tape-recorder {
; бейсик 2.5
biproc[2B05-2B55]=rk
biproc[2B05-2B55].check="C5D50E0057DB01E610"
boproc[2B60-2B84]=sp
boproc[2B60-2B84].check="C5D5F5570E087A0757"
; монитор-отладчик 3.5
tproc[EDDC-EDE2]=rk
tproc[EDDC-EDE2].check="CD1097FB76F3C9"
biproc[F840-F889]=rk
biproc[F840-F889].check="C5D50E0057DB01E610"
boproc[F89B-F8C4]=sp
boproc[F89B-F8C4].check="C5D5F5573E0232FCFF"
; лс-паскаль 2.1 (интерпретатор)
tproc[2728-272C]=rk
tproc[2728-272C].check="CD2C0176F3"
tproc[2805-280B]=rk
tproc[2805-280B].check="CD2C01FB76F3C9"
biproc[0AEC-0B35]=rk
biproc[0AEC-0B35].check="C5D50E0057DB01E610"
tproc[2646-2648]=rk
tproc[2646-2648].check="CDA726"
boproc[0B41-0B65]=sp
boproc[0B41-0B65].check="C5D5F5570E087A0757"
; эмулятор 86РК/Микроши
biproc[FC31-FC7C]=rk
biproc[FC31-FC7C].check="F3C5D50E0057DB01"
boproc[FC7E-FCA7]=rk
boproc[FC7E-FCA7].check="C5D5F5160879074FE601EE01D300"
filter="Vector CAS files (*.cas)|*.cas|RK86 files (*.rk?)|*.rk?"
ext="cas"
noisefilterfreq=3000
}
gate : dosgate {
}
clock : KR512wi1 {
cmos="Vector06c\cmos.dat"
}
hdd : cf-ide {
drive[0].image="Vector06c\vector.hdd"
drive[0].geometry=200C5H18S
}
Подскажите, плз., как правильно всё настроить?
Не думаю, что так что-либо получится. Для вектора пришлось делать накрученную раскладку памяти V06c-MemMap, отчасти из-за того, что она реагирует на слово состояния процессора. Так что ramdisk в конфиге Вектора это не просто ОЗУ. Я посмотрю по исходникам, что можно сделать, возможно при нынешнем состоянии эмулятора можно через простые компоненты сделать раскладку памяти Вектора, и тогда она будет расширяемой.
Improver
27.09.2019, 15:29
Не думаю, что так что-либо получится. Для вектора пришлось делать накрученную раскладку памяти V06c-MemMap, отчасти из-за того, что она реагирует на слово состояния процессора. Так что ramdisk в конфиге Вектора это не просто ОЗУ.Да, возможно это будет сложнее, чем кажется на первый взгляд... Ещё вариант пробовал, сделать на основе конфига "Vector06c-romdisk.cfg", там применяется некая раскладка "eramrom.map", но понять, что там и как работает я до конца не смог. :(
Я посмотрю по исходникам, что можно сделать, возможно при нынешнем состоянии эмулятора можно через простые компоненты сделать раскладку памяти Вектора, и тогда она будет расширяемой.Заранее благодарен! :)
Improver, в Emu80 тоже не получится сделать правкой конфига :(
Improver, "eramrom.map" позволяет задать, в каких областях (кратно 100h байт) будет открываться ERAM/ROM диск. В твоём случае это не нужно.
Посмотрел исходники. От V06c-MemMap отказаться нельзя, там учитывается реакция на клавиши БЛК+ВВОД/БЛК+СБР. Другими средствами это сделать нельзя. Стал думать, как выкрутиться, попробовал два таких элемента. Вроде сработало, правда сначала был конфликт с реакцией на вышеуказанные клавиши, так что порядок элементов V06c-MemMap в конфиге в данном случае очень важен. Конфиг во вложении, тестируй.
Единственное пока (на мой взгляд) отличие от реала: приоритет портов 10,11 не постоянный, в какой последний раз запись была, тот и активируется. Это накладывает определённые ограничения на программирование: сначала выключаем один квазидиск, и только потом включаем другой.
70136
Improver
30.09.2019, 08:34
Единственное пока (на мой взгляд) отличие от реала: приоритет портов 10,11 не постоянный, в какой последний раз запись была, тот и активируется. Это накладывает определённые ограничения на программирование: сначала выключаем один квазидиск, и только потом включаем другой.Я думаю, будет не сложно придерживаться этого правила, хотя, как я понимаю, не получится одновременное использование двух КД, например, если первый работает в режиме "ОЗУ", то ко второму нельзя обращаться в режиме "СТЕК"... Попробую протестить этот конфиг, спасибо.
Improver
01.10.2019, 11:10
b2m, работает новая конфигурация, единственно, добавил строку "ramdisk2="Vector06c\vector2.edd"" в секцию "ramdisk2".
Improver
28.04.2020, 13:32
b2m, заметил интересную особенность эмуляции Вектора: в некоторых программах индикатор "РУС" почему-то не работает, как на реале. Конечно, в этих программах он постоянно включается/выключается, но на реале эти кратковременные выключения незаметны, даже видимая яркость светодиода не уменьшается, а в эмуляторе он больше выключен, чем включён. Не замечали такое его поведение?
У меня нет реала, сравнить не с чем.
Прежде всего выражу восхищение эмулятором. Но возникло несколько вопросов:
1) проблемы с функцией "paste key macro". Игнорирует многие символы, например, скобки, кавычки, +, *, ... Некоторые символы заменяет, например, вместо равно приходит двоеточие, вместо точки-с-запятой - "собачка", ... Можно ли это как-то исправить правкой конфигурации? Работал с Корветом.
2) в полном дистрибутиве emu-2019 у Корвета нет поддержки работы с кассетами, но нашёл отдельную сборку, где такая поддержка есть. Посмотрел на разницу в конфигах и сделал поддержку кассет там, где её по умолчанию не было. Но без упомянутой отдельной сборки понять, что именно править в конфиге невозможно. Есть ли где-нибудь справка по конфигурационным файлам?
1. это была экспериментальная фича, но поскольку худо-бедно работала (эмулировала нажатия клавиш), то я её оставил. С Корветом не тестировал, если что и можно сделать, то поправить как-то layout.kbd, конфиг править смысла нет, это общая фича для всех эмулируемых компов.
2. справки по конфигам нет, времени на её создание тоже. Но есть люди, которые разобрались самостоятельно, по имеющимся примерам конфигурационных файлов.
1. это была экспериментальная фича, но поскольку худо-бедно работала (эмулировала нажатия клавиш), то я её оставил. С Корветом не тестировал, если что и можно сделать, то поправить как-то layout.kbd, конфиг править смысла нет, это общая фича для всех эмулируемых компов.
Фича с клавиатурными макросами очень полезная. В эмуляторе БК gid что-то подобное работает хорошо. Пытаюсь разобраться с этим на эмулируемом Корвете. Всё получается просто, если клавиша на хосте работает напрямую без shift. А как задавать клавиши, которые на хосте идут через shift, например, круглые скобки или равно? У меня есть предположение, что в макросах есть какие-то специальные средства для указания на нажатие shift, а может и других модификаторов. Верно?
Аналогично совершенно непонятно, как на Корвете определяются клавиши нажатые с shift. Нажал, например, shift-6 и получил в Корвете значок & - как это задается? Должна быть какая-то табличка для модификатора shift? Самому с этим не разобраться. Надеюсь только на Вашу помощь.
Непонятно ещё, чем отличаются названия, начинающиеся с x- (x-up, x-left, ...), от названий, которые без x- в начале? Может это так называемые "серые" клавиши? В корветном лейауте таких нет, но они есть у других компьютеров.
Пробую также разобраться с кнопкой полной скорости. Сделал для Корвета в конфиг
main.ff.speed=10
main.ff.keymask[B]=1
и добавил строку из двух символов F9 (она получилась 11-й или В-й в 16-й системе) в конец файла layout.kbd и режим полной скорости заработал. Но что означают числа 10 и 1? Подскажите, пожалуйста. Взял эти числа копированием из конфигурации БК. Есть подозрение, что это не полная скрость, а 10-е ускорение...
Рассказываю, как дело было. Понадобилось мне для загрузки файлов, которые ассоциируются по расширению в emu.ext, после старта эмуляции симулировать нажатия клавиш. Например, набирать команду загрузки файла в Бейсике. Для Львова это выглядит примерно так (в файле emu.ext):
lvt[0] : loader {
id="9:D0"
config="Lvov"
cmd[0].delay=1000
cmd[0].keymacro="BLOAD{lshift-on}22{lshift-off},R{enter}"
mode=5
}
Однобуквенные названия клавиш из layout.kbd идут как есть, остальные заключаются в фигурные скобки. Кроме того, можно в фигурных скобках добавить -on/-off для симуляции одновременного нажатия.
В качестве эксперимента добавил возможность устанавливать макрос при вставке текста (заменив перевод строки и пробел на {enter} и {space}). Получилось то, что получилось.
По поводу x- клавиш: если в файле layout.kbd нет таких, то стрелки и другие клавиши доп.клавиатуры действуют одинаково. Ну чтобы не писать везде left|x-left right|x-right (то есть "или"). Иначе можно различать клавиши основной и доп.клавиатуры.
main.ff.speed=10
main.ff.keymask[B]=1
Числа в конфиге в основном шестнадцатиричные, то есть ускорение в 16 раз, а маска клавиши из 11-того ряда, 1 это самая левая в строке (самая правая будет 80)
Обнаружил возможно бага в эмуляции БК0011М. У меня не получается заблокировать клавишу СТОП через порт записи магнитофона. Команда
mov #^B0001000010000000,@#^O177716 не работает, а с эмулятором gid работает. Хотя с эмулятором BK2010 тоже не работает - его автор признал, что не допилил. :(
Рад, что смог помочь.
А не планируется дописывать эмуляцию СМ-1800 ?
Сейчас при попытке загрузить DOS она дает ошибку "unknown MONID version"
Сейчас при попытке загрузить DOS она дает ошибку "unknown MONID version"
Какой образ диска загружался?
Вот тут недавно образы 8" дискет от СМ 1800 выложили, может удастся их запустить?
https://zx-pk.ru/threads/33253-diskety-8-quot.html?p=1118144&viewfull=1#post1118144
Уже скачал. CP/M запустился, но у меня BIOS жёстко прибит в нулевые адреса, надо с картой памяти разбираться.
Я пробовал, например, это - PPIDM sistema SI mart92.bin
L DOS - он грузит, но ошибка про версию MONID
А какой CP/M запустился?
А какой CP/M запустился?
DLYA TRANSLYACII CONTROLNAYA 2 16.05.92.bin
Я его переименовал в cpm.gmd, иначе почему-то выдавал bad sector, пока не разобрался почему.
- - - Добавлено - - -
Хотя нет, от имени не зависит, зависит от случайных байт в памяти, что-ли. Вобщем разбираться надо.
У меня он работает без бэд блоков.
Обратите внимание, там в теме с образами они выложены два раза: превый раз образы с ошибками. Может из-за этого у Вас бэД сектор?
Да нет, я по второй ссылке скачивал. То запускается, то нет. А программы (например XDIR) вылетают в MONID, точнее даже не грузятся (я ставил бряк на 0100). Какие-то проблемы с эмуляцией.
Посмотрел, почему программы в CP/M не запускаются. Ну что сказать, неподходит этот MONID 1.3, он подразумевает, что перед буфером чтения будет 7 байт для заголовка, который читает контроллер дисковода (через ПДП). Драйвер находится ниже 0800, и если сектор должен считываться в эту область, то он сначала читается во временный буфер, который в этом CP/M находится впритык ко временному стеку (для обращения к биосу). Вобщем стек портится, возврат идёт на случайный адрес. Нужно искать "правильный" MONID (и возможно с другим контроллером дисковода). Там на дисках есть какие-то файлы с подобным названием, но их сначала как-то выцарапать нужно.
- - - Добавлено - - -
Если сдвинуть временный стек на десяток байт (для этого нужно после загрузки CP/M поправить пару байт), то CP/M работает нормально, все программы работают.
Выдрал с одного из дисков MONID 1.0
С ним ни CPM ни DOS не грузятся. Но, возможно, это заготовка MONID и там внутри надо что-то прописывать.
Посмотрю на досуге что в ПЗУ на плате. 75488
Выдрал с одного из дисков MONID 1.0
С ним ни CPM ни DOS не грузятся.
Конечно не грузятся, и порты дисковода другие, и алгоритм работы совершенно иной. Пока не понял, что за контроллер.
В том-то и дело что изначально в СМ1800 был контроллер дисковода на четырех 589ИК02. Типа как в Искра-226
Пока нагуглилось только магическое слово PLx45D5, но информации по нему нет.
Нет. Это магическое слово - это сами дисководы.
Да, вот кое-что: http://emuverse.ru/wiki/PLx45D.5 только это 5-ти дюймовый дисковод.
Про контроллер пока не нарыл.
только это 5-ти дюймовый дисковод.
С каких пор? Это два 8" на одном шпинделе.
- - - Добавлено - - -
Там такие устройства (одно из двух):
СМ 1800.5602 - это накопитель СМ5602 (как раз на упомянутом польском дисководе) плюс контроллер для СМ1800
СМ 1800.5635.09 - это накопитель СМ5635 (а это уже на болгарских) плюс контроллер для СМ1800
Это два 8" на одном шпинделе
Значит на emuverse ошибка.
Да, вот кое-что: http://emuverse.ru/wiki/PLx45D.5 только это 5-ти дюймовый дисковод.
По ссылке открываем ТО. Ищем страницу 20 (по документу, не по файлу).
"Радиус дорожки 00 - 9,175 см", то есть диаметр дорожки = около 183 мм, что никак не влезает на 5.25"=133мм диск
- - - Добавлено - - -
Я бы предположил что вот это оно http://www.bitsavers.org/pdf/intel/MDS2/9800422_Intellec_Double_Density_Hardware_Reference _Jun79.pdf
C базовым адресом 78h
Я бы предположил
Ну это то, что сейчас есть, и используется в MONID 1.3. А в 1.0 там сектор программно читается/пишется.
Значит надо искать 1.2
Хотя может мы неправильно понимаем причину.
с диска blank.bin все программы запускаются. Хотя монитор тестов (MONT) если не находит тестов на диске - ругается, а при их наличии (как сейчас в образе) непрерывно выдает на экран много раз "выберите тест...." и игнорирует нажатие на клавиатуру.
Беглый анализ кода показал, что контроллер самый простейший, типа как в Радио-86РК, умеет только читать/писать байты дорожки, с синхросбоем или без, ну и головку туда-сюда двигать. Принцип понятен, можно эмуль допиливать.
можно эмуль допиливать.
А есть уверенность что это надо? Всё-таки такой контроллер видимо самый-самый ранний. Я на выходных попробую достать свои платы от 1800 и посмотреть что там зашито.
Только у меня процессор для 1800 уже тот, который в 1810 ставился, не с одной, а с четырьмя РФ2.
- - - Добавлено - - -
Ну и странно что какие-то диски нормально с MONID 1.3 работают, а какие-то (с самым обычным DOS) выпендриваются.
Не особо верится что была такая несовместимость по версиям MONID
Судя по тому, что почти на всех дисках в первых секторах есть догружаемая часть MONID 1.0, то эмуляция контроллера дисковода, который использовался с этой версией монитора, мне кажется нужна. Версия 1.3 ничего не догружает, а вот 1.0 при обращении к диску загружает первые сектора в область 0С00 и обращается к ним. Так что все диски, скорее всего, использовались на компьютере с версией 1.0.
- - - Добавлено - - -
Я на выходных попробую достать свои платы от 1800 и посмотреть что там зашито.
Только у меня процессор для 1800 уже тот, который в 1810 ставился, не с одной, а с четырьмя РФ2.
Не, ну 1810 это уже 8086. Предлагаешь разобраться с контроллером дисковода для 1810? А смысл?
Не, ну 1810 это уже 8086. Предлагаешь разобраться с контроллером дисковода для 1810? А смысл?
Не-не. Я не это предлагаю. Просто я к тому что процессоров с СМ1800 было несколько разных. Первый см1800.2201, а потом .2202.xx еще девяти видов. И у меня есть только последний .2202.09, так что не факт что в ПЗУ будет то что нужно. А я смогу только в выходные глянуть. И у меня есть еще дискеты, тоже надо глянуть есть ли там везде monid 1.0 в начале, потому что по маркировке у меня дискеты частично такие же. Вполне могла быть более новая версия под другой monid
Ну и, в принципе, для меня всегда было загадкой как 1810 работает в режиме 1800. То есть по факту в 16-битной машине стоит 8-ми битная плата процессора. Как она общается с 16-ти битной периферией, как идет выбор и понимание что мы сейчас грузим систему для см1800, а не для 1810....Но это уже не про эмуляцию 1800
для меня всегда было загадкой как 1810 работает в режиме 1800
Как пить дать - эмуляция 1800 :)
Как пить дать - эмуляция 1800
Может быть, но зачем тогда там физически стоит двухплатный проессорный модуль от СМ1800, со своими ПЗУ и ОЗУ?
dk_spb,
На шине S100 есть плата, которая состоит из 2 процессоров 8085 и 8088.
Так и СМ1810 наверное так же организовано, тем более что и шины почти одинаковы.
L Juriy, Меня больше волнует конкретная реализация. Вот соберу я 1810 с платой 1800. Как мне запустить DOS1800, а не DOS1810?
В описании сказано что поддерживаются обе. А документации вообще никакой нет на эту тему. То есть теоретически она была, а по факту - недоступна.
dk_spb,
Увы и ах, но я СМ1810 в глаза не видел, так что более конкретно ничего подсказать не могу.
Вот тут (http://evm.ho.ua/computers/cm_1810/index.php) не смотрел?
L Juriy, Смотрел, конечно. Жаль, будем искать ;-)
- - - Добавлено - - -
Не, ну 1810 это уже 8086. Предлагаешь разобраться с контроллером дисковода для 1810? А смысл?
Ну да, уже несколько иначе всё. Вот четыре РФ2 с процессорного модуля МЦП-1 (СМ1800.2202.09 на основе ИК80А). Подписаны русскими буквами (слева направо) Г, В, Б, А.
http://oldpc.su/0/12.rar
Вроде как Г сидит в F800-FFFFh и является монитором, но уже совсем другим.
У меня еще есть несколько таких процессорных модулей, но вероятность что в них другое содержимое - невелика
НУ немного посмотрел выложенные диски и пришел к некоторым умозаключениям.
Те диски которые помечены как DOS, по буржуйским прототипам есть ISIS от ALTAIR, только изменены названия ISIS на DOS.
Эмулятор ALTAIR есть в SIMH, Там же есть в исходниках эмулятор дисков для него. Это информация к размышлению.
Я попробовал подсунуть диски под SIMH но он "собака" подвисает намертво. На образах дисков от ISIS он оказывается тоже виснет.
Вот такие эксперементы.
L Juriy, Все почти так. Только ISIS вроде к Альтаиру никакого отношения не имеет, а имеет отношение к Intel MDS.
И даже в вики про это пишут https://en.wikipedia.org/wiki/ISIS_(operating_system)
И тут же мы приходим к тому, что считается что СМ1800 и этого самого MDS и драли.
Так что Вы почти правы, непонятно только причем тут Альтаир ;-)
- - - Добавлено - - -
L Juriy, Все почти так. Только ISIS вроде к Альтаиру никакого отношения не имеет, а имеет отношение к Intel MDS.
И даже в вики про это пишут https://en.wikipedia.org/wiki/ISIS_(operating_system)
И тут же мы приходим к тому, что считается что СМ1800 c этого самого MDS и драли.
Так что Вы почти правы, непонятно только причем тут Альтаир ;-)
Сделал эмуляцию контроллера дисковода для MONID 1.0 (пока только чтение). Все диски (которые пробовал) грузятся и работают нормально. Ну разве что, терминал, который сейчас используется (15ИЭ-00-013), мягко говоря не подходит (или я не умею его настраивать). Надо делать эмуляцию терминала ВТА 2000. Документации у меня нет.
- - - Добавлено - - -
Вот кстати да, DOS там это ДОС-1800, а она содрана с ISIS-II
А я таки нашел у себя .2201. Но, увы, только половину. То есть ту плату, на которой ик80. А вот озу и пзу, естественно, на другой :-(
По терминалам там похоже какой-то из ВТА2000-1x. Выложил что есть (кроме схем) на oldpc.su/9. Если надо - есть образы ПЗУ от ВТА2000-15.
Есть еще доки по ВТА2000-3 (СМ7204), но он может быть совсем другой.
- - - Добавлено - - -
Сделал эмуляцию контроллера дисковода для MONID 1.0
В очередной раз снимаю шляпу. СПАСИБО!!!
Документации у меня нет.
Смотрите - здесь. (http://doc.pdp-11.org.ru/Terminals/BTA2000/)
dk_spb,
ISIS основная система в ALTAIR и естетвенно она перешла и в MDS.
dk_spb,
ISIS основная система в ALTAIR и естетвенно она перешла и в MDS.
Что-то нигде не нашел про ISIS для Альтаира. Да и не верится, ибо ISIS=Intel System Implementation Supervisor, а Altair DOS всё же MITSовская
dk_spb,
Да ты прав, это у меня небольшой заскок, ну ничего бывает особенно в мои годы.
L Juriy, Всё нормально, я просто частенько занудствую в таких вещах.
Доделал запись дисков и выбор диска СМ-1800. Программы на диске blank.bin работают с диском данных, обычно во втором приводе. Примеров таких дисков я не нашёл, но его можно инициализировать программой DSLM.
Смотрите - здесь. (http://doc.pdp-11.org.ru/Terminals/BTA2000/)
Скачал ромы, с горем пополам объеденил в один файл (порядок РТ-шек не указан). Анализу поддаётся плохо, похоже что 30.rt5 битая.
Пока не найдём "правильные" ромы, с эмуляцией ВТА2000-15 придётся подождать.
- - - Добавлено - - -
Если надо - есть образы ПЗУ от ВТА2000-15.
Если они отличаются от тех, что по ссылке MiX, то надо. А ВТА2000-15 или ВТА2000-15М? Они вроде кардинально отличаются...
порядок РТ-шек не указан
Указан так как на корпусах микросхем платы БПЗУ. Фото по той же ссылке.
Пока не найдём "правильные" ромы
Есть от МАМЕ, но там вроде от 15M- ROM (https://www.planetemu.net/rom/mame-roms/vta2000)
dk_spb,
Ну и, в принципе, для меня всегда было загадкой как 1810 работает в режиме 1800.
По описанию MDS III это происходит следующим образом;
1 Запускается ДОС1800 обычным образом
2 Запускается команда RUN для перехода в режим СМ1810 и получаешь приглашение >.
3 Выполняешь команды ДОС1810.
4 Для возврата в ДОС1800 выполняешь коианду EXIT.
На Нивке должно быть что то подобное.
У тебя на плате которая СМ1800.2202.09 какой процессор стоит?
У тебя на плате которая СМ1800.2202.09 какой процессор стоит?
ВМ80А. На ЛС чуть позже отвечу.
- - - Добавлено - - -
На Нивке должно быть что то подобное.
На Нивке нет, там один процессор - вм86. Нивка - это уже "переделка" СМ1810 под PC совместимость
На Нивке нет, там один процессор - вм86. Нивка - это уже "переделка" СМ1810 под PC совместимость
Блин а я считал, что это одно и тоже.
Ну тогда конечно СМ1810 вместо Нивка.
На эмуляции БК символ подчеркивания с клавиатуры не набирается вроде никак.
EDIT. Попробовал в WAV-файл записать с БК0011М - пишет, но потом этот файл считать не может.
WAV, сделанный в gid-эмуляторе, считался отлично. Значит проблемы только с записью.
Хорошо бы поддержку Квант-8 добавить.
И тут же мы приходим к тому, что считается что СМ1800 и этого самого MDS и драли
C MDS Series II драли КРАМ во ВНИИЭМе. И там ISIS-II запускалась по умолчанию. Кстати в этом эмуляторе ее нигде не обнаружил. Там был монитор M3.01 он переписывался из нулевых адресов в верхнюю память, после чего ПЗУ переключалось в нижние 16К ОЗУ.
А с MDS Series III драли КРАМ-2 с процессором 8086. Но ее мы не успели получить из Александрии Кировоградской, заказали в 1990 году и потом все рухнуло и обнулилось
Хорошо бы поддержку Квант-8 добавить.
Хорошо бы. Что нужно изменить в эмуляции Корвета, чтобы получился Квант-8?
Хорошо бы. Что нужно изменить в эмуляции Корвета, чтобы получился Квант-8?
К сожалению, у меня информации мало. В 1991 довелось иметь контакты с организацией, которая хотела сбыть партию Квантов в Москве. Они их называли просто Корветами. Выглядели машинки солидно, крепкие металлические корпуса, хорошие цветные мониторы, два дисковых привода. У меня с тех пор остались только четыре дискеты и мануалы по софту. Нашел в сети информацию, что на поздние Кванты вместо одного флопповода ставили жесткий диск. Также нашел, что у Кванта расширенная клавиатура. Мы на Квантах работали только с паскалем и системными утилитами вроде PIP.
С просто Корветами дела никогда не имел. О некоторой несовместимости Квантов и Корветов с удивлением узнал только в этом году, когда попробовал загрузиться с оставшейся у меня дискеты в эмуляторах. В сети нашёл информацию, что у Квантов другое ПЗУ. Взял ПЗУ здесь (https://zx-pk.ru/threads/14495-kvant-8-informatsiya.html?p=863815&viewfull=1#post863815) - оно отличается от того что тут (https://www.phantom.sannata.org/viewtopic.php?f=18&t=7671&start=33) и второе ПЗУ неполное, только 8 КБ из 24 и с ним загрузка не идёт, хотя там возможно нужен другой загрузочный диск. Странно ещё, что в первом ПЗУ (полном) кодировка неправильная для бейсика из ПЗУ и для застaвки при загузки ОС Квант-8!
Так что ваш эмулятор нормально эмулирует Квант-8, возможно только стоило бы добавить конфигурацию Кванта-8 (особенно ценно было бы иметь правильную конфигурацию для клавиатуры - расширенная клавиатура Кванта используется, например, в Экспресс-паскале). И, конечно, пользуюсь случаем поблагодарить Вас за уникальный эмулятор.
Спасибо за первоначальную поддержку автором МСУВТ В7. Подробности здесь (https://zx-pk.ru/threads/34668-nasovetujte-prodvinutyj-dizasm8080-s-emulyatorom/page2.html).
b2m
А нет ли планов по исправлению эмуляции Ириши?
Очень много софта виснет, даже игрушки на Форте. Но, самое печальное, что не грузится ОС третьей версии.
Образ диска с ОС я могу предоставить.
Планов пока нет, но если скинешь архив с проблемным софтом, может быть на новогодние выходные посмотрю, что можно сделать.
Упс, момент, я кажется разобрался.
Improver
20.03.2023, 15:43
Конфиг во вложении, тестируй.
Единственное пока (на мой взгляд) отличие от реала: приоритет портов 10,11 не постоянный, в какой последний раз запись была, тот и активируется. Это накладывает определённые ограничения на программирование: сначала выключаем один квазидиск, и только потом включаем другой.Пользовался данной конфигурацией без проблем до настоящего времени (с учётом указанных ограничений), но вот решил дополнить биос возможностью загрузки со второго квази-диска, и ничего не вышло -- при первой записи в порт 11h сразу отваливается прошивка и эмулятор переключается на внутреннюю память. :( Это можно как-то исправить, или тоже отнести на ограничения?
Это можно как-то исправить, или тоже отнести на ограничения?
Могу попытаться. Дай какой-нибудь тест, и поясни, как работает, и как должно.
Improver
21.03.2023, 09:44
Могу попытаться. Дай какой-нибудь тест, и поясни, как работает, и как должно.
Да, вот самый простейший вариант, просто отключение квазидиска:
.ORG 00000h
L_0000: DI
XRA A
OUT 011h
L_LOOP: JMP L_LOOP
.END
Он же в откомпилированном виде: 78625
Если его подключить в качестве прошивки, то ожидаемого зацикливания на метке L_LOOP не происходит, при пошаговом исполнении после OUT видно сразу подмену памяти.
Но если взять стандартную векторовскую конфигурацию с одним КД и просто заменить в ней порт квазидиска на 11h, то этот пример отрабатывает там без глюков. Аналогично этот пример работает, если его в эмулятор загрузить в качестве программы (не прошивки), на любой конфигурации.
Если его подключить в качестве прошивки
Ясно. Проблема в том, что БЛК+ВВОД не доходит до второго квазидиска. Так что правкой конфига тут не отделаешься. Нужно делать поддержку второго квазидиска непосредственно в коде маппера Вектора.
Improver
21.03.2023, 11:41
Проблема в том, что БЛК+ВВОД не доходит до второго квазидиска.Понятно. Надеюсь, в следующих версиях это будет исправлено. :)
И второй вопрос: как к конфигурации ПК-6128ц прикрутить квазидиск (а лучше два)? Конфигурация квазидиска Векторовская, только, пожалуй, сигнал "СТЕК" там формируется по типу адаптеров Z80 для Вектора, он будет подан только при командах PUSH, POP и XTHL. Я попробовал это сделать сам, но кроме глюков ничего не вышло...
правкой конфига тут не отделаешься
Хотя, попробуй этот вариант (каскадное включение, порт 10h имеет приоритет): v06c_ramdisk2.zip (http://bashkiria-2m.narod.ru/files/v06c_ramdisk2.zip)
По такому-же принципу можно наверное и для ПК-6128ц подключить.
Improver
22.03.2023, 19:10
Хотя, попробуй этот вариант (каскадное включение, порт 10h имеет приоритет)Проверил по-быстрому, вроде работает, с оговорками. А именно:
- в эмуляторе подтягиваем два разных образа КД, загружаемся с первого -- всё ок
- удаляем на первом КД файл OS.COM, со второго КД не грузится, хотя загрузочный файл находит, но по ошибке чтения переходит к дискете.
- просто подтягиваем заново образ второго КД -- всё работает, проверяем: на первом диске OS.COM нет, грузится со второго.
Загрузчик использовал этот (https://zx-pk.ru/threads/8778-varianty-zagruzchikov.html?p=1175218&viewfull=1#post1175218), если что. Причина такого поведения пока не понятна, посмотрю завтра подробнее, хотя это и не сильно расстраивает -- главное, теперь работает. Большое спасибо!
со второго КД не грузится
А то, что грузится со второго КД, работает с портом 10h или 11h? Как вообще планируется работа?
Improver
22.03.2023, 22:19
А то, что грузится со второго КД, работает с портом 10h или 11h?В данном случае со второго грузил обычный МДОС, работающий с КД на порту 10h. Как вариант, там может быть программа, которая вообще не использует квазидиски, это не имеет значения -- загрузчиком просто считывается в память файл OS.COM со второго КД и запускается на исполнение.
Как вообще планируется работа?Как резервное устройство для загрузки, думаю. Некоторые программы используют квази-диск в качестве расширения памяти (что вполне естественно), при этом они могут легко удалить его содержимое, и в этом случае поможет второй КД с системой.
Разобрался, почему не работало. Поначалу мне казалось, что нет разницы, какой маппер обрабатывает БЛК+ВВОД. Оказалось есть. Данное событие достаётся последнему мапперу, соответственно второй квазидиск должен в конфиге быть вторым. То есть нужно поменять местами ramdisk и ramdisk2. Перезалил конфиг.
Просто если БЛК+ВВОД обработает первый ramdisk, а у него кваз не включен, то в области 0000-7FFF он выдаст содержимое загрузчика. А нам нужно, чтобы через stdmem мы достучались до второго квазидиска.
b2m
Не могли бы вы добавить в эмулятор EMU 1.0.1 oпции включить/выключить каналы AY, VI53, BEEP, как в эмуляторе Virtual Vector?
78642
oпции включить/выключить каналы AY, VI53, BEEP
Я подумаю, но не обещаю.
Improver
24.03.2023, 12:40
Перезалил конфиг.Да, с этим конфигом всё работает, пока глюков не заметил. Респект!:)
Там есть небольшой глючёк: если "подтянуть" первый квазидиск, то БЛК+ВВОД сработает для первого (из-за реализованого автосброса при смене содержимого диска) со всеми вытекающими. Но обычно .edd содержит OS.COM и загрузиться должен он, а не со второго квазидиска.
b2m, приветствую!
Давненько я не 8-битничал (с 2021-го). Сейчас снова решил "вспомнить молодость" :)
К сожалению, с тех времён жизнь заставила сменить железо на ББ и поставить эту грёбаную 10-ю винду..
Эмуль под ней вроде даже запускается (хотя запуск почему-то странно долгий 2-3 секунды, раньше на более древнем железе под вин7 было моментально) и даже работает, но при выходе из него через пару секунд выскакивает вот эта ошибка:
https://forum-img.guitarplayer.ru/2023/04/16/aaezS.jpg
эмуль этот, если что:
https://forum-img.guitarplayer.ru/2023/04/16/aazNR.jpg
С чем это м.б. связано?
Не знаю, на 10-ке не пробовал. А как обстоят дела с эмулятором Пыхонина? В планах переделать под Qt/OpenGL, вот всё думаю, стоит ли овчинка выделки.
Не знаю, на 10-ке не пробовал.
У меня в 10ке нормально работает.
Возможно как-то связано с версией DirectX, в эмуляторе используется довольно древняя версия DirectDraw.
Пробовал в свойствах ярлыка выставлять разные режимы совместимости, ситуация никак не меняется.
Единственное, если ставить ХРюшу, то потом ещё вот это окно вылезает:
https://forum-img.guitarplayer.ru/2023/04/16/aaxVv.png
Но сам эмуль работает корректно, только тормоза при запуске и эта ошибка при выходе из него..
- - - Добавлено - - -
Пока нарыл только это:
https://forum-img.guitarplayer.ru/2023/04/16/aaaQp.png
эмуль работает корректно, только тормоза при запуске
У меня так себя ведет в 10ке Virtual Vector. Помогает отключение антивируса.
Помогает отключение антивируса.
Никогда в жизни не пользовался антивирусами. Нет такого ПО на компе, как класс.
Нет такого ПО на компе, как класс.
Если 10ка, то Defender то есть, но если я правильно понял, сразу отключен.
Есть новость по проблеме "Fail Fast". Случайно обнаружил, что если в эмуляторе нажать кнопку "Скриншот", но в появившемся окне диалога сохранения ничего не сохранять, а просто закрыть его крестиком, то выход из эмулятора без этой ошибки. Эффект стабильный!
Ещё наблюдение. В моей старой сборке файл EMU.exe имеет размер 286720 байт, а в свежескачанном архиве 307200. При этом оба выдают себя за версию 1.01. В свежем архиве эмулятор запускается без задержки, но и ошибка "Fail Fast" также моментально появляется при выходе. Старая сборка запускается в окно выбора платформы сразу, а вот после выбора платформы ощутимый лаг, и примерно такой же лаг до всплывания ошибки винды после закрытия программы. Что-то где-то надо бы подпилить ;)
Denn, с возвращением! :)
Не удалось решить проблему?
Я уже более 3 лет постоянно на Wndows 10 (и Linux), defender включен, проблем с эмулятором b2m не было, запускается также мгновенно. Мне кажется, что проблема в самой системе, м. б. переустановить, хотя бы поверх? Версия Windows 10 вообще достаточно актуальная? Обновления установлены, с драйверами видео/аудио все ок?
Случайно обнаружил, что если в эмуляторе нажать кнопку "Скриншот", но в появившемся окне диалога сохранения ничего не сохранять, а просто закрыть его крестиком, то выход из эмулятора без этой ошибки. Эффект стабильный!
Очень интересно. А если другой диалог открытия файла так использовать? Например выбор ПЗУ или диска?
И ещё вопрос по скриншоту: предлагает только *.bmp сохранить или разные форматы?
у меня уже лет 6 стоит 10ка, никаких проблем и тормозов с запуском emu или virtual vektor.
антивирусов у меня тоже нет (только защитник виндовс есть).
скорее всего Denn, тебе надо ставить обновления и различные библиотеки.
Не удалось решить проблему?
Я уже более 3 лет постоянно на Wndows 10 (и Linux), defender включен, проблем с эмулятором b2m не было, запускается также мгновенно. Мне кажется, что проблема в самой системе, м. б. переустановить, хотя бы поверх? Версия Windows 10 вообще достаточно актуальная? Обновления установлены, с драйверами видео/аудио все ок?
Нет. Комп у меня в мастерской, я там бываю по выходным только, и то не по каждым. Винда можно сказать свеже установленная (сборка где максимально всё лишнее выпилено и отключено), ещё не замученная (ставил в феврале этого года), минимальный необходимый софт и всё. Драйвера все ок. Остальной софт (в т.ч. мои поделки на билдере аж ещё со времён ХР) работает без нареканий.
- - - Добавлено - - -
Очень интересно. А если другой диалог открытия файла так использовать? Например выбор ПЗУ или диска?
И ещё вопрос по скриншоту: предлагает только *.bmp сохранить или разные форматы?
Всё проверю на майских, отпишусь.
- - - Добавлено - - -
скорее всего Denn, тебе надо ставить обновления и различные библиотеки.
Ох, не любитель я ставить всякие обновления, особенно без понимания. Я сторонник принципа: работает - не трогай)
сборка где максимально всё лишнее выпилено и отключено
Подозреваю, что в этом и источник проблемы, что-то было не лишним...
работает - не трогай
Значит, не совсем работает, придется трогать ;)
Очень интересно. А если другой диалог открытия файла так использовать? Например выбор ПЗУ или диска?
И ещё вопрос по скриншоту: предлагает только *.bmp сохранить или разные форматы?
Попробовал.
1) Убирает ошибку открытие следующих диалогов: Open, Save, Save As, Save Screenshot, Change ROM-disk
2) Не убирают ошибку диалоги открытия образов дискет: N1, N2
3) Также не влияет полноэкранный режим, спрятать мышку, ресайзы экрана, показ/непоказ строки статуса, тулбара, вывод "о программе".
4) Если нажать "New", то открытие этого диалога очень прилично тормозит, зато если после этого закрыть программу, то ошибка FailFast выскакиваем прям моментально, без типичной задержки.
Снял небольшой ролик - https://www.youtube.com/watch?v=El7lxgDWmYY
- - - Добавлено - - -
PS п.4 уже попробовал после того, как снял видео
PPS также пробовал выбирать эмуляцию других платформ (Орион-ПРО, Океан-240, РК) - всё тоже самое.
По поводу п.4, это ожидание окончания потока, отвечающего за звук. Но я сократил этот таймаут уже лет 10 как назад (после того как перешёл на Win7). В XP всё работало как задумано, а в Win7 почему-то по другому. Разобраться не удалось, т.к. компиляцию и отладку делаю в виртуалке. Отличие поведения 1 и 2 ставит меня в тупик. Я грешил на диалог открытия файлов, но тут похоже что-то другое.
Ещё возможна проблема с GDIPLUS.DLL, т.к. именно она выгружается/деинициализируется по закрытию эмулятора. Но опять-таки, одни догадки, как проверить - непонятно. Можно, конечно, найти все версии на компе и переименовать временно, чтобы проверить. Если она не будет найдена, скриншоты только в bmp будут. Сам решай.
EXE'шник с которым видео от 2016 года:
https://forum-img.guitarplayer.ru/2023/05/03/h8Mir.jpg
Нашёл ещё вариант от 2019-го:
https://forum-img.guitarplayer.ru/2023/05/03/h8vTC.jpg
с ним всё также, но окно ошибки всегда выскакивает моментально при закрытии эмулятора.
GDIPLUS.DLL в папке с эмулятором нету, у меня нашлись только тут:
https://forum-img.guitarplayer.ru/2023/05/03/h81Au.jpg
Может версия какая-то не такая?
- - - Добавлено - - -
Ещё обратил внимание, что при закрытии процесс эмулятора исчезает мгновенно из диспетчера задач, а ошибка всплывает позже этого.
И ещё вот этапы запуска эмулятора через диспетчер задач, если это как-то может прояснить:
https://forum-img.guitarplayer.ru/2023/05/03/h8sgS.png
https://forum-img.guitarplayer.ru/2023/05/03/h87MR.png
с ним всё также, но окно ошибки всегда выскакивает моментально при закрытии эмулятора.
Вот, это версия с сокращённым таймаутом.
Может версия какая-то не такая?
Для меня всегда было загадкой, почему версии настолько отличаются. Как мне кажется, грузится та, что в каталоге SysWOW64, можно попробовать переименовать её временно. Но скорее всего ошибка не пропадёт.
Ещё обратил внимание, что процесс эмулятора исчезает мгновенно из диспетчера задач, а ошибка всплывает позже этого.
Это ни о чём не говорит. Мало ли что делает винда, после закрытия процесса. Может она показывает только состояние главного потока. А то, что ошибка всплывает позже может намекать на то, что поток, отвечающий за звук, продолжал работать и после закрытия эмулятора.
Винда вот эта: "Windows 10 Pro 22H2 19045.2364 + Office 2021 x64 by BoJlIIIebnik RU.iso"
Но всё же я думаю, что конкретная сборка винды тут ни при чём.
- - - Добавлено - - -
А то, что ошибка всплывает позже может намекать на то, что поток, отвечающий за звук, продолжал работать и после закрытия эмулятора.
Такое разве возможно?! Родительский процесс разве не контролирует закрытие своих потоков?
Ну ок, если это гадит процесс звука, то что даёт открытие/закрытие некоторых файловых диалогов?
- - - Добавлено - - -
Мне всё таки странны тормоза между выбором платформы и её запуском. Их точно раньше не было. Такое ощущение, что происходит разводка печатной платы моделируемой 8-битки)) При этом загрузки процессора нет вообще.
Родительский процесс разве не контролирует закрытие своих потоков?
Правильно написанная программа сама завершает потоки. При закрытии программы я тоже жду, когда завершится поток, но он похоже не завершается. Отсюда и таймаут.
Ну ок, если это гадит процесс звука, то что даёт открытие/закрытие некоторых файловых диалогов?
Хороший вопрос. Ответа только пока нет.
Мне всё таки странны тормоза между выбором платформы и её запуском.
При выборе платформы предыдущая закрывается, соответственно и поток, отвечающий за звук.
Если при старте не выбирать платформу, а нажать Esc, то выбор платформы по New будет без тормозов.
- - - Добавлено - - -
Вопрос только в том, почему ошибка только у тебя.
- - - Добавлено - - -
Я не настаиваю на использовании последней версии, но пользоваться совсем уж древней версией всё-же как-то странно.
Если при старте не выбирать платформу, а нажать Esc, то выбор платформы по New будет без тормозов.
Проверил - действительно. И если не выбирать никакую платформу, то при выходе ошибки нет.
- - - Добавлено - - -
Возможно каким-то образом через настройки запретить запуск процесса звука вообще?
- - - Добавлено - - -
Вопрос только в том, почему ошибка только у тебя.
Это не вопрос. Сколько реально пользующихся эмулятором сегодня? Сколько среди них живут под Вин10 ? Сколько из них зарегистрированы на форуме? Сколько готовы заморачиваться обратной связью с автором эмулятора, если что-то не совсем ровно работает? Не удивлюсь, если я один и есть такой :)
- - - Добавлено - - -
P.S. через две недели выйду из отпуска и проверю на работе, там тоже 10-ка.
Возможно каким-то образом через настройки запретить запуск процесса звука вообще?
К сожалению, не предусмотрено.
- - - Добавлено - - -
Есть предположение, что процесс звука как-то не так завершается и остаётся зомби-процессом. А винда при закрытии процесса это обнаруживает, и выдаёт ошибку.
Проверить можно так: в версии от 2016 года запустить платформу, открыть и закрыть диалог, убирающий ошибку, затем открыть диалог новой платформы, но потом нажать Esc.
То есть скомбинировать п.1 и п.4
Проконтролировать задержку при открытии новой платформы, при закрытии эмулятора и наличие ошибки.
Полагаю, при закрытии эмулятора задержки не будет, но ошибка будет.
- - - Добавлено - - -
Если есть желание копаться дальше, могу сделать настройку в файле EMU.ini, отключающую создание процесса звука.
Проверить можно так: в версии от 2016 года запустить платформу, открыть и закрыть диалог, убирающий ошибку, затем открыть диалог новой платформы, но потом нажать Esc.
То есть скомбинировать п.1 и п.4
Проконтролировать задержку при открытии новой платформы, при закрытии эмулятора и наличие ошибки.
Полагаю, при закрытии эмулятора задержки не будет, но ошибка будет.
Поэкспериментировал по-всякому. В общем, факт открытия любой платформы взводит ошибку выхода, а передёргивание диалога ROM-диска (или Save и т.п.) деактивирует её навсегда. Между ними можно делать сколько угодно New-Cancel операций, на картину выхода не влияет. Подробнее:
1) Запускаем, но жмём отмену (не грузим платформу). New срабатывает моментально. Так можно сколько угодно делать. Выход из эмуля - без ошибки.
2) Запускаем эмуль, выбираем платформу. Жмём New - всё виснет насмерть на время лага, появляется новая платформа. Можно вновь сделать New, также лаг. Если делать отмену новой платформы и вновь жать New, то лага нет. Выход с ошибкой через время лага.
3) Запускаем, но жмём отмену (не грузим платформу). New срабатывает моментально. Далее выполняем п.2 (только без запуска эмуля, он у нас уже запущен) - всё также как в п.2 :)
4) Самое интересное! Запускаем, но жмём отмену (не грузим платформу). New срабатывает моментально. Передёргиваем диалог "Save". Жмём New, выбираем платформу, затем закрываем эмуль - ошибки нет!
- - - Добавлено - - -
5) Всё как в п.4, но не выходим из эмуля, а жмём New - лаг. Но последующие выборы платформ или отмены картину не меняют - выход из эмуля без ошибки.
- - - Добавлено - - -
Если есть желание копаться дальше, могу сделать настройку в файле EMU.ini, отключающую создание процесса звука.
Да. Надо же добить вопрос :)
- - - Добавлено - - -
Поправка к п.2
Лаг между выходом и появлением ошибки есть только в случае, если выходим с загруженной платформой. Если после передёргивания New-Cancel, то ошибка после закрытия моментально без лага.
- - - Добавлено - - -
Таким образом, насколько я понимаю ситуацию, лаг есть всегда по факту загрузки/выгрузки платформы, но напрямую он на ошибку не влияет. Передёргивание причинных диалогов квитирует ошибку навсегда, но на лаги не влияет. Ошибку взводит факт загрузки платформы, а не эмулятора. Деактивировать ошибку (или не допустить её взвод?) можно заранее - это самое странное во всей этой истории, на мой взгляд.
Надо же добить вопрос
Ну тогда, если не трудно, скачай последнюю версию с моего сайта и проверь, есть ли ошибка.
Затем замени EMU.exe из архива http://bashkiria-2m.narod.ru/files/test.zip и снова проверь. В этой же версии можно добавить в EMU.ini строчку main.nosound=1 и отключить звук совсем.
- - - Добавлено - - -
Вот, кстати, та-же проблема с http. Если кликнуть на ссылку, ничего не скачается. Только если скопировать её и открыть её в новом окне.
- - - Добавлено - - -
Кстати, в последних версиях, ожидание окончания потока вообще без таймаута, то есть вечно. Значит поток всё-же завершается. В тестовом варианте я немного изменил порядок завершения звукового процесса, возможно это поможет.
Свежий из архива: по ошибке всё тоже самое, только время лага стало сильно меньше. При нажатии New слышно шелчки, и сразу после них открывается меню. Т.е. лаг явно на время звуков.
Тестовый с отключалкой: без команды отключения в инишнике всё тоже самое, что и с новым из архива; при main.nosound=1 вообще всё шикарно - ни лагов (эмуль летает!), ни ошибки!
Выходит косячанский в звуке. Но почему фиксит ошибку передёргивание файловых диалогов???
P.S. у меня на борту три звуковых карты, две из которых с поддержкой ASIO, но ведь это вряд ли как-то может влиять.. или может?.. Эмуль пищит через встроенный звук на материнке, который выбран для звуков винды.
- - - Добавлено - - -
Вот, кстати, та-же проблема с http. Если кликнуть на ссылку, ничего не скачается. Только если скопировать её и открыть её в новом окне.
У меня в Опере эти ссылки открываются и качаются без проблем. Траблы тока с картинками и только оформленными тегами [имг].
Но почему фиксит ошибку передёргивание файловых диалогов???
Сам удивляюсь. Однако изменения в тестовом варианте не помогли. Досадно.
Однако изменения в тестовом варианте не помогли. Досадно.
А если поток звука запускать всё как было, но сам звук не дёргать (тред-пустышка, не делать обращение к аудио API или как там оно устроено?).
Т.е. понять на каком конкретно участке борода.
В вин7 работа со звуком как-то иначе, чем в ХР; а в вин10 ещё более иначе, чем в вин7 (за конкретику не скажу, тока слышал звон..).
Винда вот эта: "Windows 10 Pro 22H2 19045.2364 + Office 2021 x64 by BoJlIIIebnik RU.iso"
Но всё же я думаю, что конкретная сборка винды тут ни при чём.
Понадобилась мне виртуалка для кое-каких экспериментов. Решил скачать и попробовать эту сборку... Ошибка воспроизвелась ;)
https://pic.maxiol.com/images2/1683222508.1560140064.failfast.png
А как обстоят дела с эмулятором Пыхонина?
Сегодня попробовал, в нём нет этой ошибки.
- - - Добавлено - - -
Также, в сравнении, заметил артефакты по самому звуку, записал на видео:
https://www.youtube.com/watch?v=PLPe8_5qyPs
- - - Добавлено - - -
Насколько догадываюсь, каждый акт воспроизведения звука предваряется неким щелком "включения звукового тракта". По факту загрузки/выгрузки платформы тоже слышны удары по динамикам, по идее их быть не должно, это какая-то лишняя коммутация.
- - - Добавлено - - -
Понадобилась мне виртуалка для кое-каких экспериментов. Решил скачать и попробовать эту сборку... Ошибка воспроизвелась ;)
Имеется в виду эта сборка Винды или эта сборка эмулятора? Если первое, то на других сборках 10-ки ошибка не воспроизводится?
Имеется в виду эта сборка Винды или эта сборка эмулятора?
Эта сборка винды.
Другие "левые" сборки винды не пробовал, на оригинальных образах проблем нет.
2) Не убирают ошибку диалоги открытия образов дискет: N1, N2
Поставил 10-ку в виртуалку. Эти диалоги тоже убирают ошибку. Ничего не напутал?
У меня создалось впечатление, что любой диалог открытия файла убирает ошибку.
Поставил 10-ку в виртуалку.
Ту же сборку?
Эти диалоги тоже убирают ошибку. Ничего не напутал?
У меня создалось впечатление, что любой диалог открытия файла убирает ошибку.
Проверил ещё раз. Про диалоги N1/N2 актуально для экзешника от 2016-го года. Эмуль из свежей сборки действительно гасит ошибку и этими диалогами тоже.
- - - Добавлено - - -
У меня давно лежит на сайте архив с настроенными Орионами, изменённой раскладкой клавы под них, нужными образами ПЗУ - http://denn.ru/8bit/emu_b2m/emu.rar
Вот в этой версии диалоги N1 и N2 не убирают ошибку.
Есть интересная новость!!!
Дело всё же не в бобине, в смысле не в звуке. Ну или не только в звуке.
Взял тестовую версию emu.exe с отключенным звуком в инишнике. Работаю - типа всё хорошо, всё летает и ошибки при выходе нет.
Решил потестировать виртуальные дисководы. Нашёл у себя пустышку empty.odi, подкинул эмулю через диалог N1, копировал туда файлы Орионом, сравнивал, что-то ещё делал, потом выхожу - та самая ошибка! Сначала подумал, что показалось. Решил перепроверить.
В общем, фишка следующая. Если пользоваться odi-образом только на чтение, то ошибки нет. Если что-то писать в образ, то при выходе из эмуля та самая ошибка FailFast.
Такие дела.
Мдя, мелкософт умеет подкинуть загадку...
b2m, так ты воспроизвел проблемы в виртуалке на той же сборке или на оригинальном образе? Может дело-то не в MS а в криворуких делателях сборок?
Я воспроизвёл в виртуалке на сборке от того-же делателя: Windows 10 Pro 22H2 19045.2311 + Office 2021 x64 by BoJlIIIebnik RU (тут номер билда чуть чуть другой)
Другие ссылки с тем-же номером билда были для торрента, я не справился.
- - - Добавлено - - -
Может дело-то не в MS а в криворуких делателях сборок?
Я не исключаю, что набор DLL, которые в совокупности грузятся, как-то конфликтуют друг с другом, но это было бы совсем уж просто. Возможно тут что-то другое. Надо какую-то IDE с отладчиком ставить. Так не понятно.
нафига такие сборки берёте от всяких Васей Пупкиных.
берите чистые сборки винды и никаких проблем не будет.
у меня Windows 10 Pro 22H2 19045.2913
Подтверждаю, на чистой сборке и в виртуалке все ок.
нафига такие сборки берёте от всяких Васей Пупкиных.
берите чистые сборки винды и никаких проблем не будет.
у меня Windows 10 Pro 22H2 19045.2913
Лично мне не нужна вся эта встроенная телеметрия с ежедневными отчётами "папе" и прочими совершенно ненужными наворотами. Нашёл вариант сборки, прочёл все отзывы - мин нет. Установил, проверил на всём софте, которым пользуюсь - тоже всё ок. Были бы малейшие сомнения или глюки какие-то, не ставил бы.
Подтверждаю, на чистой сборке и в виртуалке все ок.
И тормозов от звука при перевыборе платформы тоже нет?
и прочими совершенно ненужными наворотами
Серверные варианты Windows
electroscat
13.05.2023, 06:34
b2m, приветствую!
Давненько я не 8-битничал (с 2021-го). Сейчас снова решил "вспомнить молодость" :)
К сожалению, с тех времён жизнь заставила сменить железо на ББ и поставить эту грёбаную 10-ю винду..
Эмуль под ней вроде даже запускается (хотя запуск почему-то странно долгий 2-3 секунды, раньше на более древнем железе под вин7 было моментально) и даже работает, но при выходе из него через пару секунд выскакивает вот эта ошибка:
https://forum-img.guitarplayer.ru/2023/04/16/aaezS.jpg
эмуль этот, если что:
https://forum-img.guitarplayer.ru/2023/04/16/aazNR.jpg
С чем это м.б. связано?
Вот у меня тоже самое, при выходе Fail Fast ошибка. ТОже вин 10. До этого стоял другой дистрибтив WIN10 - там работало без ошибок. Поставил обрезок, с выкинутыми многочисленными функциями которые что либо отправляют в майкрософт - и вот такая ерунда. Причем, это единственная программа которая как то не так работает в этой винде. ТОрмозов нет, а вот эта ощибка при выходе регулярна.. Что то с этим вопросом прояснилось ?
- - - Добавлено - - -
Вообще по описанию все 1 в 1 - так же если открыть диск 1 и диск 2 - ошибки нет при выходе, так же если не выбрать платформу ошибки нет.. В общем, все что описано вше - у меня все 1 в 1. Есть ли какео то решение уже ?
Забыл отписаться: у меня в урезанной сборке в виртуалке также ошибка есть, но тормоза не замечены.
Но та виртуалка чисто для экспериментов, в основной системе все ок. Не советую такие сборки, лучше самому отключить что не нужно...
Не советую такие сборки, лучше самому отключить что не нужно...
А чем отличается самостоятельное отключение (скорее всего по тем же инструкциям из интернетов) от такового, сделанного кем-то другим, скорее всего более опытным в данном вопросе? ;)
- - - Добавлено - - -
Если задуматься, то отключение служб это не правка программного кода ОС, не подмена системных библиотек на какие-то неподходящие (кривые) версии и т.п.. Если бы что-то важное было отключено (не работала какая-то часть WinAPI), то не работала бы какая-то функция программы и скорее всего была бы осмысленная ошибка.
Работа "внутреннего" кода эмулятора вряд ли чем-то отличается от работы под другой версией ОС, конфликт скорее всего где-то на участке взаимодействия с WinAPI.
А чем отличается самостоятельное отключение (скорее всего по тем же инструкциям из интернетов) от такового, сделанного кем-то другим, скорее всего более опытным в данном вопросе?
Да хотя бы тем, что ты контролируешь процесс и всегда можешь вернуть все обратно, если что-то пойдет не так.
electroscat
15.05.2023, 17:18
Да хотя бы тем, что ты контролируешь процесс и всегда можешь вернуть все обратно, если что-то пойдет не так.
Вопрос глубоко философский, пошло ли что нибудь не так... У меня только на рабочем столе 71 ярлык запускающий программы, оторые используются часто, там и компас, и фрикад, и кикад и pcad и vegas pro и разного рода hex редакторы, а... 10 штук эмуляторов разных... и это только те, которые я часто использую. Система у меня стоит с 2020 года.. В общей сложности программ почти две сотни... Проблемы только у одной. Нужно ли это рассматривать как "что то пошло не так" или как "данная программа как то не так работает с конкретной системой... Реально, из всего моего зоопарка софта - только у этого эмуля есть проблема...А вообще, систему мне готовил очень серьезный компьютерщик ручками, это не сборка,. Нам с ним необходимо было провести многоуровневую трансляцию одного многопоточного мероприятия, одновременно проводились как минмум 5-6 мероприятий, каждое как минимум две камеры, а центральный зал 4 камеры, дрон и две вэбки... Для этого нужно было очень тщательно подготовить системку, выкинуть любые намеки на стороннюю передачу. Я в процессе не учавствовал, мне товарищь накатывал готовый образ и ставил дрова, и естественно я с этого образ тоже после установки дров сделал.. Нужно ли мне из за одного эмуля снести все это и поставить "чистую сборку" ? Ну философский вопрос.... Я в целом и не обращал внимания три года на это сообщение и звук... Но увидел что кто то описал - узнал свою беду и решил тоже написать...
Проблемы только у одной.
Насколько я понимаю, это из-за того, что программа эта написана с использованием средств и технологий, которые были актуальны в 1998-2002 годах.
Нужно ли это рассматривать как "что то пошло не так"
Это нужно рассматривать как офигенную обратную совместимость, которую поддерживает всеми нами нелюбимый мелкософт в своей ОС.
Вы можете привести пример программы, которая была бы разработана 20 лет назад и работает на всех версиях линукс без перекомпиляции, просто запустив бинарник?
Нет, я конечно могу написать на ассемблере 32-битный "Hello, World!" для линукса используя только syscall, и он будет работать везде, но мы же сейчас не о бесполезных крошечных программах, а о программах, использующих в общей сложности более десятка dll.
electroscat
15.05.2023, 19:27
Насколько я понимаю, это из-за того, что программа эта написана с использованием средств и технологий, которые были актуальны в 1998-2002 годах.
В целом, и такая идея приходила в голову... Вполне вероятно. То что я писал на борланд дельфи уже в большинстве случаев не запускается....
Это нужно рассматривать как офигенную обратную совместимость, которую поддерживает всеми нами нелюбимый мелкософт в своей ОС.
Это вообще отдельная тема, на которую нервов не хватает, да и времени жалко...
Вы можете привести пример программы, которая была бы разработана 20 лет назад и работает на всех версиях линукс без перекомпиляции, просто запустив бинарник?
Нет, я конечно могу написать на ассемблере 32-битный "Hello, World!" для линукса используя только syscall, и он будет работать везде, но мы же сейчас не о бесполезных крошечных программах, а о программах, использующих в общей сложности более десятка dll.
Сомнительно что такое возможно, если программа более менее в порядке..., согласен на 100%.
Под вин возможно pcad 2006 - до сих пор пользуюсь... А и max2win - ото динозавр, интерфейс еще от WIN 3... Тоже пользуюсь до сих пор, для Альтерок стареньких редактор схем с компилятором и программатором... В остальном наверное все.
Это нужно рассматривать как офигенную обратную совместимость, которую поддерживает всеми нами нелюбимый мелкософт в своей ОС.
Где то у меня валяется книжка (в электронном виде), в который товарищь (или товарищи) из команды разработки Win95 описывает - почему то или иное работает так или не иначе, а попутно рассказывает о том, как они обеспечивали, что бы ЛЮБАЯ программа из Windows 3.1 работалы бы под Win95 и сколько они для этого программ купили, что бы проверить. Читалось, как захватывающий триллер - особенно объяснения - почему так, а не иначе было сделано.
Проблемы только у одной. Нужно ли это рассматривать как "что то пошло не так" или как "данная программа как то не так работает с конкретной системой...
Может не до конца выразил свою мысль - если ты сам что-то отключал, то проще найти, что влияет на эту проблему и разобраться в причинах. Даже если проблема на самом деле не в системе, а в эмуляторе, и просто, какой-то, например, отключенный сервис в системе как-то косвенно влияет... В готовой сборке разобраться куда сложнее. Я на днях уже пытался сравнить сравнить две системы в двух виртуалках - с ошибкой и без, пытаясь "привести их к общему знаменателю". Увы не получилось - система с ошибкой упорно выдает ошибку, а без ошибки - не выдает ;)
отключенный сервис в системе как-то косвенно влияет
Вполне возможно. Например, либо отсылать что-либо в мелкософт, если это разрешено, либо выдавать сообщение. Однако это не объясняет, почему мой эмуль завершается с ошибкой.
electroscat
25.05.2023, 10:46
Вот кстати, вопрос по эмулятору, существенный. Как в режиме эмуляции Вектора 06Ц с квазидиском - сохранить квазидиск в файл, и потом из файла его монтировать с определенными параметрами ? Есть ли такая опция ?
Вот кстати, вопрос по эмулятору, существенный. Как в режиме эмуляции Вектора 06Ц с квазидиском - сохранить квазидиск в файл, и потом из файла его монтировать с определенными параметрами ? Есть ли такая опция ?
ramdisk : V06c-MemMap {
cpustate=cpu.state
rom=bios[0000]
stdmem=mem1[0000]
ramdisk="Vector06c\vector.edd"
ramsave="Vector06c\vector.sav"
}
Можно сохранять в тот-же файл, но лучше в другой, и копировать в оригинальный, если изменения понравились :)
Improver
11.07.2023, 18:09
Здравствуй, b2m, есть вопрос по эмуляции ПК-6128ц, в честности по эмуляции памяти. Изучая схему и документацию, можно понять, что переключение банков памяти на ПК-6128ц должно выполнятся так, вот все возможные комбинации:
Параметр в OUT 0Eh (4-1 биты и/или 8-5 биты)
Адреса 0000-7FFFh
Адреса 8000-FFFFh
0 (0000)
Банк 0
Банк 1
1 (0001)
Банк 0
Банк 0
2 (0010)
Банк 0
Банк 3
3 (0011)
Банк 0
Банк 2
4 (0100)
Банк 1
Банк 1
5 (0101)
Банк 1
Банк 0
6 (0110)
Банк 1
Банк 3
7 (0111)
Банк 1
Банк 2
8 (1000)
Банк 2
Банк 1
9 (1001)
Банк 2
Банк 0
A (1010)
Банк 2
Банк 3
B (1011)
Банк 2
Банк 2
C (1100)
Банк 3
Банк 1
D (1101)
Банк 3
Банк 0
E (1110)
Банк 3
Банк 3
F (1111)
Банк 3
Банк 2
Выделенное красным явно указано в документации, как "наиболее рациональные значения", остальное можно понять из схемы. Биты 4-1 определяют подключённый для чтения банк, биты 8-5 -- банк для записи.
"Банк 0" = 0000h-7FFFh, "Банк 1" = 8000h-FFFFh, "Банк 2" = 10000h-17FFFh, "Банк 3" = 18000h-1FFFFh.
В ходе экспериментов оказалось, что в эмуляторе не совсем правильно переключается память, например, при отправке кода 011h память распределяется точно также, как и при отправке 000h, т.е. "Банк 0, Банк 1" вместо ожидаемого подключения "Банк 0, Банк 0".
ORG 0000h
L_START: DI
MVI A, 033h ; загр. конфигурацию памяти
L_BM: OUT 00Eh ; отправляем...
; 33h (Банк 0 - Банк 2) чтение и запись
; 22h (Банк 0 - Банк 3)
; 11h (Банк 0 - Банк 0)
; 00h (Банк 0 - Банк 1)
SUI 011h ; следующее значение -- тут можно поставить точку останова и проверить память.
JP L_BM ; если < 80h
JMP L_START
END
Если что, монитор тестов для 6128 в emu нормально отрабатывал (https://zx-pk.ru/threads/8146-pk-6128ts-obsuzhdenie.html?p=1106242&viewfull=1#post1106242) тест озу, а в VV спотыкался.
Improver
12.07.2023, 06:51
Если что, монитор тестов для 6128 в emu нормально отрабатывал (https://zx-pk.ru/threads/8146-pk-6128ts-obsuzhdenie.html?p=1106242&viewfull=1#post1106242) тест озу, а в VV спотыкался.Да, тест отрабатывает, но он, скорее всего, использует режимы 00h, 22h и 33h, и тут проблем нет. Мне же понадобился немного нестандартный режим 11h для теста ОЗУ из прошивки и тут оказалось, что не всё верно переключается.
Полного списка вариантов я не сохранил, но я там написал, что в тесте используются еще как минимум 55h и 66h.
Improver
12.07.2023, 09:04
в тесте используются еще как минимум 55h и 66h.55h? Проверил сейчас, на адреса 8000-FFFF при этом тоже подключается "Банк 1" вместо ожидаемого "Банка 0". Вполне возможно, что в эмуляторе тест памяти просто дважды проверяет "Банк 1"... :(
Какие значения пишет в порт 0Eh тест озу:
Преамбула до банок (убрал повторы и отсортировал) - 00, 02 ,03, 20h, 22h, 23h, 30h, 32h, 33h
Сам тест когда банки:
00
Банк1 - чередует 22/00h
02, 33h
Банк2 - чередует 00h/33h
22h
Банк3 - чередует 00h/22h
20h, 0, 55h
Банк0 - чередует 66h/55h
22h
Improver
12.07.2023, 17:29
Сам тест когда банки:Я бы тут немного уточнил:
-----
00
Банк1 - чередует 22/00h -- экран в Банке 3 (обновляется при конфигурации 22h), программа в Банке 0
02, 33h
Банк2 - чередует 00h/33h -- экран в Банке 1, программа в Банке 0
22h
Банк3 - чередует 00h/22h -- экран в Банке 1, программа в Банке 0
20h, 0, 55h -- тут заметна небольшая задержка, т.к. переливаются данные
Банк0 - чередует 66h/55h -- экран снова в Банке 3, программа в Банке 1
22h
-----
Вот на последнем этапе в эмуляторе на самом деле тестируется Банк 1 вместо нулевого, как я понял. По крайней мере, короткий тест выше (https://zx-pk.ru/threads/8399-f-a-q-po-emulyatoru-bashkiriya-2m.html?p=1182276&viewfull=1#post1182276) показывает, что это так -- это легко заметить, если занести метки в память, по которым можно отследить подключённый банк.
В emu можно посмотреть куда реально пишет/откуда читает тест в адресном пространстве mem1
Банк1 - mem1 8E00-FFFF
Банк2 - mem1 10700-17FFF
Банк3 - mem1 18100-1FFFF
Банк0 - mem1 8100-FFFF
Действительно похоже с банком 0 ошибка, насколько понимаю должен писать/читать mem1 0100-7FFF
Improver
19.07.2023, 10:25
b2m, а что Вы думаете по этой ошибке эмулятора (https://zx-pk.ru/threads/8399-f-a-q-po-emulyatoru-bashkiriya-2m.html?p=1182331&viewfull=1#post1182331)? Её возможно как-то исправить?
вопрос по пк поиск.
подскажите пожалуйста чем можно открыть образ жёсткого диска hdd.img и скопировать туда файлы игр и программ ?
или может где-то есть готовые образы ?
Не самый удобный способ (давно это было), но я монтировал образ в QEMU, грузился в ДОС с дискеты, а вторую дискету монтировал как каталог, оттуда и переносил файлы. Сейчас может уже есть более удобные программы. А в линуксе вообще без проблем - смонтировал образ (vFAT поддерживается "из коробки") и копируй туда чего хочешь.
Можно ли каким-нибудь образом загружать исходный код на Бейсике в ПК «Башкирия-2М»?
Для некоторых компьютеров реализован ввод текста через буфер обмена. Но не всегда работает как надо.
View / Paste key macro
b2m, в конфигурации для "Океана-240" прописаны следующие биты порта КНГМД:
dskctl : Register {
write[2]=dsk.drive[0].on
write[2]=dsk.drive[1].~on
write[5]=dsk.side
read[0]=dsk.drq
read[3]=dsk.drive[0].on
read[6]=dsk.side
read[7]=dsk.irq
}
Мне думается, что read[7] должен отдавать сигнал MOTST (одновибратор в КНГМД, запускается на несколько секунд узким отрицательным импульсом при записи в бит 3 порта 25h).
ЗЫ сообщение, наверное, нужно бы перенести сюда - https://zx-pk.ru/threads/8373-pozhelaniya-i-plany-po-emulyatoru-bashkiriya-2m/
Для некоторых компьютеров реализован ввод текста через буфер обмена. Но не всегда работает как надо.
View / Paste key macro
Спасибо, но вот скопировал код в буфер обмена, нажимаю Paste key macro и ничего не происходит.
на Бейсике в ПК «Башкирия-2М»?
Не сразу понял, что речь про ПК Башкирия-2М, а не эмулятор в целом.
В эмуляторе три конфигурации Башкирии:
АРМ-ШК Башкирия - это первая версия, сравнима с Микро-80, там всё сложно
Башкирия-2М диск - это учительский вариант с дисководом
Башкирия-2М ром - это ученический вариант с ПЗУ вместо дисковода
Проще всего грузить в "Башкирия-2М диск", но нужно скачать с сайта образы дисков для Башкирии, скопировать в каталог B2M.
После сброса нужно нажать любую клавишу пока моргает курсор, чтобы загрузиться с диска.
По-умолчанию в первом дисководе будет disk2.cpm, там на второй стороне (диск В: ) есть Бейсик, называется XY.COM, его можно запустить командой B:XY
Во второй дисковод можно выбрать каталог, при этом (при открытии) в строке "тип файлов" выбрать All files, и выбрать какой-нибудь файл, к примеру TEST.BAS
Тогда этот файл будет на диске C: и его можно будет загрузить в бейсике командой LOAD "C:TEST",A
Последний параметр в команде говорит, что нужно грузить как текст, а не как бинарник.
Можно ли каким-нибудь образом передавать исходники в BK-0010_01, и если нельзя, то можно ли вызывать «Бейсик Вильнюс» в БК-0010fdd?
Теоретически, в этом бейсике тоже есть команда LOAD "NAME", которая загружает программу в текстовом виде, но он грузит блоками по 256 байт с заголовком. Я попробовал сохранить и загрузить файл длиннее 256 байт - не получилось. Вот Фокал, к примеру, сохраняет одним блоком, и в нём загрузка/сохранение работают.
- - - Добавлено - - -
Если очень хочется, можно ввести программу вручную и сохранить командой CSAVE (токенизированная программа сохраняется одним блоком).
Чтобы сохранённые по SAVE файлы загружались обратно, нужно удалить в конфиге строку:
iproc[116640-116710]=bk
Я даже сам забыл, что когда-то искал причину: post537801 (https://zx-pk.ru/threads/19998-vopros-po-vilnyuskomu-bejsiku.html?p=537801&viewfull=1#post537801)
В принципе, формат несложный, можно написать конвертор для текстового файла.
Если очень хочется, можно ввести программу вручную и сохранить командой CSAVE (токенизированная программа сохраняется одним блоком).
В telegram-группе по БК подсказали вот такой способ: https://github.com/tereshenkovav/BKBasic2Asc
подсказали
Не уверен, что мой эмуль схавает. Вот конвертор для моего: bas2asc.zip (https://bashkiria-2m.narod.ru/files/bas2asc.zip)
Про загрузку написал в предыдущем посте.
Чтобы сохранённые по SAVE файлы загружались обратно, нужно удалить в конфиге строку:
Спасибо, удалил в файлах BK-0010.cfg, BK-0010_01.cfg, BK-0010fdd.cfg, однако не нашёл такой строки в файле BK-0011m.cfg.
Вот конвертор для моего: bas2asc.zip
Спасибо за написание конвертера.
Вот версия для DOS, компилированная при помощи Borland C++ 3.1 — 83228
Вот версия для DOS
Не знал, что кто-то ещё сидит под ДОС :)
В наше время, чтобы запустить программу для ДОСа, нужен уже эмулятор. ;)
- - - Добавлено - - -
удалил в файлах
Я бы всё-же посоветовал сохранить оригинальные файлы, а строку удалять в их копиях. Другие пользователи вряд-ли полезут в конфиг, а ты можешь забыть о факте удаления, или, обновив эмулятор, перезаписать файлы. Потом будет непонятно, почему перестало работать, или почему у других не работает.
После отладки программы для БК, нужно сохранить её командой CSAVE, чтобы у других тоже без проблем работало.
Про загрузку написал в предыдущем посте.
На BK-0011m пробую загрузить исходник (BT.BAS (https://workupload.com/file/DCa2DDzmeLV)) и многократно открывается диалоговое окно:
83230
Я же дал конвертор. Делаю
bas2asc.exe BT
получаю BT.BIN, загружаю в БК-0010-01 командой
LOAD "BT"
вроде грузится. Но не работает. Пробую листинг, в строке 1240 какая-то шняга, непечатная.
Попробуй заменить все символы с кодом больше 127 на другие. Проверь все используемые операторы, так ли они работают, как ожидается.
Я же дал конвертор. Делаю
Просто не догадался убрать расширение файла:
https://i.postimg.cc/sXKvw1Rr/111.png
Пробую листинг, в строке 1240 какая-то шняга, непечатная.
Это профессиональное, у нас на авиазаводе каждый первый мастер непечатного слова. :v2_dizzy_army:
Попробуй заменить все символы с кодом больше 127 на другие. Проверь все используемые операторы, так ли они работают, как ожидается.
Отдельная благодарность, сейчас займусь перепечатыванием исходника.
Просто не догадался убрать расширение файла
Прошу прощения, наверное надо было просто сделать замену расширения на .BIN для выходного файла, но я поленился. Думал, пользователь, увидев сообщение об ошибке, догадается. Тем более, заглянув в исходник.
83294 83295 83327 83328
С учётом дефицита оперативной памяти для программ на Бейсике (ошибка № 7) склепал логическую игру в сокращённом виде. Есть определение модели — БК-0010.01 и БК-0011М, запуск производится в разном цветовом исполнении.
Опубликована в соответствующей теме — https://zx-pk.ru/threads/33794-novye-igry-dlya-bk.html?p=1220833&viewfull=1#post1220833
BIN-файл в конфигурации BK-0010_01 не загружается в конфигурацию BK-0011m
Если вы имеете в виду под BIN именно бейсиковские файлы, сохранённые командой BSAVE, то ничего удивительного, там архитектурная несовместимость по адресам. Бейсики БК10 и БК11М совместимы только на уровне исходного кода, у них даже псевдокод, сохранённый по команде CSAVE не совместим друг с другом.
у них даже псевдокод, сохранённый по команде CSAVE не совместим друг с другом
От, тож.
gid, b2m, получается, способа открывать исходник в конфигурации BK-0011m нет?
Не получается открывать даже bin-файлы, создаваемые при помощи утилиты bas2asc.
Не получается открывать даже bin-файлы, создаваемые при помощи утилиты bas2asc.
Давай уточним. Исторически так сложилось, что все файлы для БК имеют расширение .bin (в моём эмуляторе). Однако это могут быть как бинарные файлы (программы), так и файлы для Бейсика, сохранённые командами CSAVE (токенизированный) и SAVE (текст). Так что, чтобы не путать народ, лучше не писать "bin-файлы", а уточнять, что имеется ввиду.
Токенизированный файл для БК-0011м загрузить не получится, т.к. токены не совпадают с другой версией Бейсика. А вот текст может быть и можно загрузить, но там опять надо разбираться с перехватом загрузки блока/символа.
Текст можно, на уровне исходника, asc файлы бейсик принимает как родные. У меня в эмуляторе сделано, всё работает как с россыпью asc файлов в формате bin, так и с wave файлом.
- - - Добавлено - - -
А с загрузкой COD файлов не всё так однозначно. Оказывается если не использовать платформозависимые штуки, то всё вполне работает.
Я когда-то пробовал загружать в бейсик БК11М некоторые случайно выбранные COD файлы, и у меня БКшка просто зависала, вот я и подумал про несовместимость.
А вот сейчас попробовал загрузить в бейсик БК11М игру BOM из комплектной кассеты БК0010, и всё загрузилось и даже играется.
у них даже псевдокод, сохранённый по команде CSAVE не совместим друг с другом
То есть, это утверждение неверно?
Давай уточним.
Созданный из текстового исходника с помощью утилиты bas2asc.
А вот текст может быть и можно загрузить, но там опять надо разбираться с перехватом загрузки блока/символа.
Попытался загрузить и текст, опять не получилось.
83298
- - - Добавлено - - -
Текст можно, на уровне исходника, asc файлы бейсик принимает как родные. У меня в эмуляторе сделано, всё работает как с россыпью asc файлов в формате bin, так и с wave файлом.
Можно ли увидать ссылку на эмулятор?
То есть, это утверждение неверно?
Да, неверное. Чистый бейсик, с чисто бейсиковскими операторами, даёт совместимый код.
Пока не начинается всякое POKE,PEEK с адресацией в ОЗУ/ПЗУ. И прочее платформозависимое, напр. вставки п/п в маш.кодах, ибо они обычно обращаются к ПЗУ монитора БК10 или даже в ПЗУ бейсика, особо продвинутые.
- - - Добавлено - - -
Можно ли увидать ссылку на эмулятор?
https://gid.pdp-11.ru/
Стандартный уже вопрос про эмуляцию ПК Галаксия (https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D0%BB%D0%B0%D0%BA%D1%81%D0%B8%D1%8F_( %D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D 1%80)), реализованную под названием Galaxy — возможны ли приём-передача исходников на Galaksija BASIC (https://ru.wikipedia.org/wiki/Galaksija_BASIC)?
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot