- сотрудничество
-
? Юрий@ - 08.01.2002 16:03
Я начинал свой программистский путь с БК и был большим фанатом. Сейчас программирую на IBM. Пишу эмулятор для БК под Windows и мне нужна кое какая информация. Буду очень рад помощи. А также ходел бы поучавствовать в жизни сайта.
P.S. Оформление сайта просто отпад!!!
Видно что все сделано с огромной любовью.
-
? Владимир - 10.01.2002 16:44
Многие из нас начинали с БК (коротая ночи за PDP ассемблером :)
Эмулятор под windows был бы кстати. Свяжись с Камневым (его координаты в контактах), думаю он поможет.
Когда доделаю новую версию сайта, можно будет администрировать его совместно, об этом я сообщу всем по e-mail.
-
? Александр@ - 26.07.2002 12:00
Я имею опыт написания эмулятора БК (в том числе с работой в Win-окне), есть и информация и идеи, единственно, что я не осилил хорошо - сопроцессор
-
? Старый БКшник@ - 17.09.2002 00:50
Идея эмулятора под Win32 еще жива?
Как успехи? Хотелось бы поучаствовать, если еще не поздно.
-
? aleXXoft@ - 16.10.2002 09:57
Эмулятор под винды? Так ить я его написал ещё в 1998 году. Последняя версия 2.5 от 2001 года... Кому надо - вышлю. Пишите на мыло. Разместить мне его негде... ;)
-
? Юрий@ - 29.11.2002 11:51
Народ я всетаки создал эмулятор под Window. Кто заинтересовался http://boulder-dash.narod.ru и еще кое -какой самописаный сюрприз для любителей Boulder Dash. Пишите отзывы и о багах, я буду очень признателен.
-
? Александр Руткевич@ - 05.12.2002 19:31
Для любителей делать эмуляторы - хотелось бы чтобы:
1)Кроме Бейсика эмулятор также поддерживал Фокал.
2)Был совместим с основным форматом - IMG или BKD.
3)Эмулятор на IBM PC работал бы с подключенным магнитофоном.
-
? Юрий@ - 06.12.2002 16:45
1) Как раз над этим ведется работа
2) IMG ничего не стоит поддержать, итоже просто слепок с дика, а что бы они работали, нужно эмулировать контроллер дисковвода. Над этим кстати тоже ведется работа
-
? Дмитрий - 25.12.2002 00:17
АААУУ !!! БК-шечникиииии !! Отзовииитееесь !! Королёв Михаил, Сотченко Денис, Бутырский Дмитрий, где вы ?? !!! Ну хоть мыла свои оставьте!! Кидайте всё на моё мыло, плииизззз !!!
-
? Денис Сотченко aka RDC@ - 30.11.2003 03:05
Лично я - здесь =)
-
? Аноним - 03.03.2004 13:32
-
? Shura Avseyev - 26.12.2004 04:25
Привет Денис. Long time no see. :)
-
? Shura Avseyev - 15.02.2005 07:08
Кстати, эмулятор глючит с магнитофоном. :( У меня заявляет "failed to open capture device". Windows'2k и XP.
-
? Юрий@ - 02.03.2005 16:27
Может действительно Failed! :)
А какая звуковая карта у тебя?
Просто тут обнаружил, что драйвера у разных звуковух глючат безбожно. Из-за этого DirectSound неправильно работает. Я целый год не мог понять, почему у некоторых людей работает звук, а у некоторых нет... Потом в Инете нашел много инфы по этому делу и вроде исправил...
Другие-то программы через directsound - каптурят?
-
? Shura Avseev - 03.03.2005 12:20
Я пробовал на двух компьютерах и 3-х ОС. Один и тот же результат. Исходники не компилируются. DirectSound отлично работает и проблем нет ни в играх ни с TeamSpeak. Это встроенная (кажется Via) sound card на Asus K8 Delux.
Пробовал также и на ноутбуке, где также никаких проблем с DirectSound'ом не было.
С горя я уже написал свою программу чтения с кассеты. Но использовал wavein. А с ним обнаружился другой геморой. :( Почему-то на большом компьютере (на котором Asus'овская встроенная звуковуха) каждый буффер начинается с 20-30 нулевых уровней. Пытался разными способами склеивать такой мусор, но пока не получается. Попробую через DirectSound считать.
-
? Юрий@ - 05.03.2005 11:50
А что значит исходники не компилируются? Я их не менял, у меня они компилируются без проблемм. А чем вы компилируете и что пишет компилятор?
¤
Вы установили DirectX SDK и PlatformSDK?
-
? Shura Avseev - 06.03.2005 14:41
Не компилируются, потому что нет дома старой visual Studio. В VS.NET поменялся MFC. Не компилируются не по вашей вине. :)
Но capture так и не работает. На 4-х компьютерах уже попробовал. Вероятно, проблемы с новым DirectX (9). Беглый взгляд на параметры и вашу функцию не позволил найти с ходу, в чем может быть проблема.
-
? Shura Avseev - 07.03.2005 03:43
Сорри, что бы не конкретным. Исходники, скорее всего компилируемы. У меня просто нет старого VS. А в VS.NET сильно поменялся MFC.
-
? Shura Avseev - 07.03.2005 09:29
Да, скомпилировать действительно непросто. Нужен не просто DirectX SDK, а именно 7-й, который еще надо где-то раздобыть. :(
-
? Shura Avseev - 07.03.2005 13:02
Ok, было бы хорошо, если бы ты дал свой e-mail. А то мы форум засоряем. :)
Короче, сумел с небольшими переделками и кривостями перекомпилировать с SDK 9. Microsoft'овские SDK никогда не отличались совместимостью от версии к версии. :(
Нашел, почему не открывает capture device. getcaps почему-то возвращает 0 в этом куске кода (TapeManagerDlg.cpp):
¤
if ((dsccaps.dwFormats & WAVE_FORMAT_4M08) == 0)
¤
Хотя, естественно, звуковая карта (и ни одна) поддерживают 44k/8bit. И тот же getcaps из MCI работает нормально в моем исполнении на Delphi. Возможно, они что-то заменили в DX9, ввели новую структуру или еще чего. Не было времени копать. Факт в том, что менджер работает, если эту проверку закомментировать.
Но тут тоже образовались непонятные проблемы. На XP окомпилированный эмулятор работает. И tape manager и сам эмулятор. Но на win2k, на моем компьютере, где более серьезная звуковая карта, все диалоги открываются без caption'ов. Такое ощущение, что все скомпилировано с ресурсом не на том языке. Попробовал поменять язык ресурса диалога - никаких результатов. Как результат, ничего не появляется в ListView. :( Item'ы в Combobox'е (Save as...) тоже не добавлены. Остается только догадываться, что они значат.
Было бы здорово, если бы ты сам перекомпилировал этот код. :)
Буду очень признателен.
-
? Юрий@ - 09.03.2005 11:57
Конечно, давай по e-mail так будет правилней. Пришу, что б спмеры не доставали. Черточки естественно не нужны:
k-a-l-m-y-k-o-v <at> s-t-o-i-k <dot> c-o-m
У меня есть уже нормально компилирующаяся версия под, без кривостей :) .Net.
Я сейчас тоже на новую студию перешел. Напиши мне - и я тебе пришлю.
-
? Shura Avseev - 11.03.2005 02:23
stoik.com отфуболивает письма. :( Либо давай другой адрес или напиши мне сам (alexn74 эт usa.net)
-
? Аноним - 11.09.2008 17:30
Дай
-
? Юрий Калмыков - 26.09.2008 14:14
На всякий случай мой новый ящик: y-_-k-a-l-m-y-k-o-v <at> m-a-i-l <dot> r-u
-
? Dimchik@ - 12.05.2012 13:02
aleXXoft, если ещё актуально, можно получить исходники на Дельфях эмулятора?
-
? Аноним - 12.05.2012 23:24
Это не Delphi. Там C++/MFC/DX, проект в Visual Studio. Автор e-mail дал, так что пишите ему напрямую. BKBTL и брухисовский эмуляторы с открытым кодом, качайте их лучше.
-
? gid@ - 13.09.2012 14:42
Рискну выложить свою текущую версию эмулятора Юрия Калмыкова. Поскольку уже больше месяца ничего не добавляется и не улучшается. Видимо иссяк порох в пороховницах и нужно сделать перерыв.
Исходники - http://files.mail.ru/OK5AL6 - просто рабочий архив с исходниками и материалами для работы.
Исполняемый файл - http://files.mail.ru/8R9A9U - архив с дистрибутивом, так сказать, инсталлятор делать лень, да и смысла нет.
Эмулятор представляет из себя улучшенную и дополненную версию Калмыкова. Идеологически всё тот же. с теми же недостатками.
Что добавлено по сравнению с оригиналом:
1. БК0011М;
2. FDD контроллеры - стандартный, А16М, SMK512 + эмуляция HDD;
3. AY-8910;
4. стерео Covox.
5. Раскладка чисто БКшных клавиш заменена на непривычную относительно других эмуляторов, может показаться очень неудобной, но другого выхода не было. Информацию смотреть в директории Docs.
6. Улучшения по мелочам почти всего, что возможно.
-
? Дмитрий - 13.09.2012 14:48
А что за файл test.hdi в папке img эмулятора?
-
? gid@ - 13.09.2012 15:00
Это образ винчестера, в своём собственном формате.
-
? Voland@ - 13.09.2012 15:43
Может имеет смысл переориентиваться на реальный образ винчестера БК? Заодно может кто и утилиту для его правки напишет.. Потому как очень неохото собирать весь софт БК на реальной БК - совсем неудобно, директории не копируются, долго все.
-
? Дмитрий - 13.09.2012 15:52
Пишу, и уже давно. Только времени дописать все не хватает.
-
? gid@ - 13.09.2012 16:00
А что есть "реальный образ винчестера БК"? Тот образ что использую я - это абстрактная модель HDD, удовлетворяющая условию задачи сэмулировать винчестер на БК. и делать с ней можно всё, что заблагорассудится, в том числе и создать из неё "реальный образ винчестера БК" с помощью программы для снятия образов с HDD (другое дело, что эту программу сперва написать надо будет.)
-
? Дмитрий - 13.09.2012 17:12
Скорее всего под реальным образом винчестера БК подразумевался формат контроллера SMK, а не собственный формат.
-
? Voland@ - 13.09.2012 17:26
Ну да, я имел ввиду формат SMK. Могу выложить образ, если кому-то он интересен.
-
? Terra - 13.09.2012 18:35
я же уже здесь выкладывал софт для создания образа и извлечения из него отделных дисков под smk и самарский контроллер
-
? gid@ - 13.09.2012 18:53
Мне интересен. Выкладывайте. Интересен как раз тем, как кто-то сделал что-то. Потому что очень часто оказывается, то то, что я сделал, кто-то уже сделал раньше меня и лучше меня.
Terra, а не затруднит уточнить, в какой именно ветке выкладывали? Я видимо этот момент пропустил и просто не знаю, что искать.
-
? MSV - 13.09.2012 19:48
Андрей, приветствую!
Тут на днях один толстый партизан "от БК" попросил прислать ему образ его диска от БК с самарским контроллером, долго думал чем его дёрнуть на Win7... в итоге получилось снять посекторный дамп с помощъю Paragon HardDisk Manager 8.5, но вот что дальше с образом делать... твой софт способен работать с посекторным дампом?
-
? CD-Inc@ - 13.09.2012 21:32
Лукин ReLoad ?
-
? gid@ - 13.09.2012 21:49
Тут выяснилась одна неучтённая деталь. Оказывается, что у людей есть свои, когда-от созданные образы винчестеров БК. Но к эмулятору напрямую их подключить не получится, потому что винт - это не дискета, и устроен немного сложнее. Предполагается, что существует много разных винчестеров разной ёмкости. Поэтому, для правильной работы с образом винчестера обязательно нужно знать его геометрию, CHS.
Поэтому я напишу конвертер, преобразующий существующий образ в виртуальный HDD для эмулятора. Там делов-то, добавить спереди служебный сектор, куда прописать параметры CHS и прочие данные.
Но для этого нужен подопытный, и его параметры.
-
? Voland@ - 14.09.2012 01:10
Вот всё выложил:
http://www.forum.bk-fpga.ru/viewtopic.php?f=4&t=1555
Очень хотелось бы утилиту, которая наглядно отобразила бы структуру этого образа, распознала бы формат каждого диска, каждого логического диска MK-DOS, размеры всех этих дисков, содержимое и т.п. Чтобы можно было менять объемы, "раздвигая/сдвигая" весь пласт данных, удлинять/укорачивать весь образ, заполнять заданное пространство нулями (для нормальной архивации образа), добавлять/удалять файлы и ДИРЕКТОРИИ с любого диска, производить ВЕРИФИКАЦИЮ любого указанного в образе винчестера файла с указанным файлом в составе файловой системы Windows.
Также будет удобно, если эта программа будет открывать образы дискет БК в форматах основных ОС, переносить/копировать файлы и ДИРЕКТОРИИ в обе стороны.
Ну и возможность создать такой образ с нуля. Потом на него можно будет удобно и быстро с PC залить весь без исключения софт БК, имеющийся в инете, попутно создавая электронный каталог программ на создаваемом образе винчестера.
-
? Дмитрий - 14.09.2012 01:37
>> m: [размер 10080 блоков] формат ANDOS, утилиты для работы с винчестером, описания
Это как? Если правильно помню из описания ANTECH, у АНДОС 3.1 макс. размер FAT 1200 байт (такой же объем имеет системный буфер) или 424 кластера. То бишь макс. размер раздела равен 424кл*2кб=848кб=1696 блоков.
-
? Дмитрий - 14.09.2012 01:42
Прошу пардону, конечно же речь про АНДОС 3.30
-
? Terra - 14.09.2012 08:50
2 MSV можно разбить на отдельные имиджи, я правда не уверен как это пройдет с самарским образом, формат восстанавливал по прошвке. Для альтпро все работает на 100%. Ссылок сейчас дать не могу, поищите тут, в темах про HDD. Есть на асме на с исходники.
2 god в самом образе уже есть информация о chs как в самарском так и в альтпровском образе
-
? gid@ - 14.09.2012 10:12
Terra, а что ещё там есть? Можно получить формат и структуру БКшных MBR, как самарского, так и альтпровского?
Если с альпровским я ещё могу разобраться, дизассемблировав SERVICE и SETMBR, то про самарские контролеры, прошивки и форматы винтов я вообще ничего не знаю и никогда не видел.
----
В общем-то, я сам виноват, что ввёл всех в заблуждение, неправильно сказал, что test.hdi это образ. К эмулятору подключается не образ винчестера, а виртуальный винчестер как виртуальное устройство. Это устройство представляет собой файл, содержащий в себе дескриптор-описатель параметров устройства, системную информацию, которой контроллер Альтпро в общем-то не пользуется, но для правильности эмуляции интерфейса АТА она нужна, и собственно дисковое пространство, то бишь образ.
-
? Дмитрий - 14.09.2012 11:24
Кстати, в выложенном Voland'ом образе отсутствует МБР. Судя по метке АА55 в последнем слове нулевого сектора затерто чем-то виндовым...
-
? Voland@ - 14.09.2012 11:45
Ну по крайней мере когда образ разворачиваю на постороннюю флеш, он без проблем начинает работать на БК. Так что если МБР там отсутствует, значит для БК он необязателен))
Кстати, возможны проблемы с картридерами, если вдруг после развертывания образа он не работает на БК или просто сбои во время развертывания случаются - значит надо менять картридер. Может помочь и смена флешки на другого производителя, но лучше поменять картридер на более современный.
Что касается раздела m: [размер 10080 блоков] - это был просто рабочий раздел для временного хранения каких-то данных, так что сделал размер с запасом, если вдруг под MK-DOS использовать приспичит.
-
? Дмитрий - 14.09.2012 12:00
Кстати, за образ спасибо - будет чем свою утилиту тестить.
-
? Terra - 15.09.2012 00:14
2 gid выложил свои исходники и описания http://t-h-s.ru/bk/bkhdd.zip хорощая у вас прога для работы с имиджами, жаль что логические диски mkdos не поддерживает :( ну и за доделку эмулятора спасибо.
на БК MBR не использовался хотя такая возможность заложена (1-6 сектора), почитайте АльтПро.txt и HDD_BK_WIN.TXT. далее параметры диска (7 сектор) и таблица разделов (8 сектор).
-
? Дмитрий - 15.09.2012 15:27
В 8-м секторе все хранится. И геометрия, и таблица. В 7-м первым словом (более ничего не использовалось) был только признак повышенной скорости. Это говорил мне еще Новак, когда я покупал винт у него.
-
? gid@ - 15.09.2012 21:18
Terra, спасибо. Чтобы моя прога поддерживала логические диски, её надо практически переписать заново. Начавши писать её, я совсем забыл про существование логических дисков, т.к. не пользовался ими. У меня не было винчестера на БК, а необходимости использовать их на дискетах никогда не возникало.
Сейчас пока выход такой: извлекаем из образа логический диск как файл, задаем ему расширение .img или .bkd и опять открываем прогой.
Когда меня эти манипуляции вконец задолбают, я таки заставлю себя сделать что-то, а поскольку с логическими дисками я дел практически не имею, то это случится нескоро.
-
? gid@ - 24.09.2012 13:52
Выполняю обещание сделать конвертер существующих образов для эмулятора.
В общем-то я просто доработал утилиту HDDImageMaker. Теперь если ей подсунуть образ винчестера, то она на основе его создаст виртуальный HDD для эмулятора. Забирать там http://gray-gid.narod2.ru/
Теперь чтобы не плодить на форуме мёртвых ссылок, у эмулятора будет постоянный сайт.
-
? nzeemin@ - 27.10.2012 12:56
@gid, в версии v3.6.930.1956 x86 проверял -- VALLEY.BIN Kings Valley после второго экрана (пирамиды и стрелка) не заходит в игру. Скорее всего дело в эмуляции таймера, оставшегося от ВE1. Можно посмотреть описание тут: http://code.google.com/p/bk0010/wiki/Timer и на этом форуме было подробное тестирование этого таймера.
-
? nzeemin@ - 27.10.2012 13:51
@gid, странно что в эмуляторе нет конфигурации "БК0010(01) со стандартным дисководом" и было бы ещё интересно глянуть на конфигурацию "БК0011М с МСТД".
-
? gid@ - 27.10.2012 15:15
Честно говоря, я в эмуляторе не запускал ещё ни одной игры. Я более чем уверен, что многие из них не работают. Разбирательство с ними ещё впереди.
[БК0010(01) со стандартным дисководом]
не знаю как будет работать БК0010(01) со стандартным дисководом, у которого нету доп.ОЗУ. В конфигурации Калмыкова был контроллер дисковода с доп.ОЗУ, которое мапилось на адреса 120000-160000. Именно это послужило причиной сделать эмуляцию контроллера А16М. А потом я решил не оставлять почти дублирующиеся конфигурации.
[БК0011М с МСТД]
Стандартная конфигурация БК11М и есть конфигурация с МСТД.
нужно выйти из бейсика в монитор и сделать 160000G - запустятся тесты.
Просто у меня нету блока МСТД для БК11М и я не знаю как ведёт себя БК11М при старте с этим блоком. А инфы в инете такой нету.
¤
¤
-
? nzeemin@ - 27.10.2012 15:37
@gid, Kings Valley очень показательна -- она сильно опирается на особенности таймера.
¤
"Стандартный дисковод" для БК0010, насколько я знаю, обычно был с дополнительным ОЗУ.
¤
БК-0011М с МСТД без дисковода -- загружается в Бейсик, если нажата какая-либо клавиша то загружается в монитор.
-
? nzeemin@ - 27.10.2012 15:57
@gid, прогнал тесты МСТД БК-0011М на вашем эмуляторе. Тесты ОЗУ, ПЗУ -- нормально, кстати, вот реал теста ПЗУ: http://fotki.yandex.ru/users/nzeemin/view/309553?page=0
Тест таймера у меня на реале даёт ошибку: http://fotki.yandex.ru/users/nzeemin/view/486377?page=0
а у вас он работает. С этим тестом видимо надо разбираться что и как он проверяет.
-
? nzeemin@ - 27.10.2012 16:01
@gid, ещё вопрос -- палитру БК-0011М вы выставляли по реалу или по каким-то докам? Опять же есть фото с реала, но там подкачал монитор: http://fotki.yandex.ru/users/nzeemin/view/309524?page=0
-
? gid@ - 27.10.2012 16:57
@nzeemin, а какой сакральный смысл в конфигурации "БК0010(01) со стандартным дисководом"? Кроме полноты набора конфигураций. Я просто не вижу в ней необходимости. Единственный плюс в ней - эмуляция EIS/FIS из ПЗУ. Но задач использующих плавающую арифметику на БК10 я не встречал.
Палитру выставлял по своей реальной БК11М. Но т.к. в моём телевизоре слишком много зелёного, и цветность никак не регулируется, то с цветами типа зелёный, светло-зелёный, салатовый мог и напутать. все они выглядят одинаково. И я ориентировался по файлу FL11M.txt
-
? gid@ - 27.10.2012 18:48
Косяк с таймером исправлен. Причиной была моя самодеятельность в алгоритме таймера.
-
? CD-Inc@ - 09.11.2012 18:28
Товарищ gid сделал доступным брожение по лог. дискам МкДОСа в своём
ультра-мега-бест-дрим-тим-вандер-фан-супер-пупер-лупупер-охрененно-офигительно-полезном БКДЕ с драгом и дропом.
за что ему Большое Спасибо.
-
? Артём - 09.11.2012 20:39
И в эмуляторе добавьте пожалуйста запись скриншотов желательно в формате *.png c разрешением 512x512 или хотя бы 512х256.
-
? gid@ - 09.11.2012 22:11
А почему png? Я заметил, что многие не любят этот формат, предпочитают jpg. Даже там, где использовать формат сжатия с потерями вредно для контента.
Мне, как ленивому программисту, скриншот проще сохранять в bmp или в крайнем случае в tga, тем более что размер файла получается небольшой из-за небольшого разрешения.
1. Я хочу сохранить монолитный exe файл, внутрь которого всё включено, к которому не нужно прикладывать дополнительные dllки для работы, поэтому png нежелателен. Лениво включать в проект libpng + zlib, когда можно ничего не включать и использовать bmp.
2. Картинка в эмуляторе формируется с разрешением 768х576 и свободно масштабируется в сторону уменьшения для людей с маленькими мониторами. Так что и скриншот будет такого же разрешения.
-
? Patron - 09.11.2012 22:47
Формат PNG хорошо подходит для хранения скриншотов с ограниченным числом цветов - я только его и использую.
Многим, кто хочет скриншот в формате JPG или PNG - может быть удобнее вставлять его в граф. редактор из буфера обмена, а не загружать из файла.
-
? gid@ - 13.11.2012 16:09
Сделал запись скриншотов. Оказывается я слегка подотстал от жизни, микрософт в свой MFC включил полезную штуку CImage с помощью которой скриншот можно сохранять практически в любом формате.
Так что как и просили, формат скриншотов - png, сделать - горячая кнопка F12.
-
? Артём - 13.11.2012 22:35
Огромное спасибо )))
-
? Dizzy - 15.11.2012 00:34
А можно сделать просмотр памяти БК в визуальном режиме (для БК11М разделяя по страницам) с последующей записью в формате БК любой выбранной страницы или куска страницы выбранного по адресу и длине.
Хорошо бы ещё реализовать просмотр спрайтов как в 'PARADISE' - SPRITE.PAR команда 'SE' с изменением ширины и высоты спрайта в байтах.
Это будет большой помощью в разработке программ (для меня) и надеюсь для многих других )))
-
? gid@ - 15.11.2012 09:14
Можно. Почти именно этим я и занимаюсь в свободное время. Напрямую выдирать подобный функционал из BKBTL неохота, хочется изобрести свой велосипед. Но дело идёт тяжко. Сделано это будет совсем нескоро.
-
? Аноним - 15.11.2012 10:26
ПЗУ в дизасемблерном виде тоже можно просматривать и выводить на печать?
Если эмулятору "подсунуть" файл с изменённым ПЗУ - он будет работать также, как работала бы реальная БК?
-
? gid@ - 15.11.2012 16:30
Функционал связанный с печатью я не трогал, Калмыков в доке писал, что можно распечатывать дизассемблерный листинг, я при проверке распечатал коротенький кусочек кода на пол странички - распечаталось. Просматривать код в эмуляторе точно можно, есть специальное окошко "Отладка", там это делается.
>Если эмулятору "подсунуть" файл с изменённым ПЗУ - он будет работать также, как работала бы реальная БК?
Нет никаких причин, чтобы он не работал. Есть даже специальные возможности для отладки своих ПЗУ.
-
? Ал-р - 15.11.2012 17:28
Имелись в виду изменения в системных ПЗУ - в частности внесение своих изменений в Монитор (например другая внутренняя реализация некоторых ЕМТ).
-
? gid@ - 15.11.2012 18:06
Да ради бога, формируйте свой rom Файл. Подключайте вместо стандартного в файле настроек и пользуйтесь.
-
? Андрей - 21.11.2012 18:04
А в отладчике можно сделать поиск по коду или команде, а вообще как в нём можно править код или нельзя, ещё бы хотелось листать по PgUp и PgDn )))
-
? gid@ - 21.11.2012 20:03
В окошке дизассемблера ничего нельзя, там весь код, который на экране, формируется динамически и каждый раз пересоздаётся.
В окошке дампа - в принципе возможно, но там дампится всего 512 байтов, так что поиск не имеет смысла.
-
Вообще говоря, все элементы отладчика надо переписать заново. Но никто не хочет браться, в том числе и я. Как гляну на код и предстоящий объём работ, так сразу делается тоскливо, и сразу всё расхачивается.
Исходники выложены, может найдётся энтузиаст, который сделает доброе дело.
-
? Patron - 21.11.2012 23:41
Чезез год можно будет начать писать универсальный отладчик для модульного API, а пока есть смысл подумать на тему, каким должен быть API и интерфейс универсального отладчика, чтобы он годился для большинства эмулируемых процессоров.
-
? nzeemin@ - 22.11.2012 00:40
Зачем придумывать универсальный апи отладчика, когда уже давно есть gdb? достаточно реализовать у себя в эмуляторе gdb stub.
-
? Patron - 22.11.2012 00:56
И то верно!
Благодаря наличию исходников можно даже попробовать сделать модульную версию gdb - тогда, например, язык интерфейса отладчика можно будет менять "на лету".
-
? Patron - 22.11.2012 15:54
Идея реализовать универсальный API отладки при помощи протокола "GDB Remote Serial Protocol" ( GBD RSP ) очень хороша!
Добавив в эмулятор последовательный порт [RSP], который можно настраивать на работу через TCP/IP ( или даже через COM-порт PC ) - можно подключать к эмулятору (хоть локально, хоть удалённо) любой RSP-совместимый отладчик ( главный из которых - сам GDB ).
Но есть и оборотная сторона медали:
1. Текущая версия RSP (насколько я понял) не поддерживает удалённое дизассемблирование (на стороне GDB Server), поэтому GDB может показывать дизассемблинг только для известных ему процессоров (на мой взгляд - это большой недостаток, сильно снижающий универсальность подхода).
2. В RSP нет команды запроса архитектуры - отладчик не имеет возможности определить, какой процессор отлаживается.
3. Остутствует стандарт универсального оконного GUI GDB, позволяющего работать с целевыми процессорами не известной заранее архитектуры.
...
В свзи с изложенным - более конкретный вопрос звучит так:
1. Какие расширения протокола RSP необходимы для универсального отладчика, чтобы он мог работать с целевыми процессорами произвольной архитектуры ?
2. Каким должен быть оконный интерфейс универсального отладчика, позволяющий работать с целевыми процессорами произвольной архитектуры ?
-
? nzeemin@ - 22.11.2012 16:46
@Patron, идея это Сергея Вакуленко, и он уже прикручивал к эмулятору gdb: http://ramlamyammambam.livejournal.com/123488.html
-
? Patron - 22.11.2012 18:55
Обязательное требование к универсальному отладчику - возможность из общего исполнимого файла запускать отладку любого заранее неизвестного процессора с поддержкой дизассемблирования.
Насколько я понял - gdb на это в принципе не способен из-за отсутствия в RSP команды запроса дизассемблинга.
Причина (похоже) в том, что основная функция, реализуемая не в RSP-сервере, а в самом gdb - это как раз дизассемблинг, поэтому после переноса дизассемблинга в RSP-сервер - роль gdb может выполнять обычная терминалка :)
-
? Patron - 23.11.2012 01:12
Описание последней версии GDB RSP ( http://sourceware.org/gdb/current/onlinedocs/gdb/Remote-Protocol.html ).
Для поддержки каждого нового процессора в GDB - дистрибутив нужно дополнить дизассемблером и описанием архитектуры.
Удивительно, что за столько лет в GDB так и не появилось возможности получать дизассемблинг и описание архитектуры по RSP..
-
? Артём - 14.12.2012 00:45
А можно в строку состояния добавить видимые флажки какие регистры клавиатуры включены, как в "Эмуляторе 3000", ЛАТ, РУС, СТР, ЗАГЛ, (АР2 и СУ - если они нажаты) для удобства работы с клавиатурой БК. )
-
? gid@ - 14.12.2012 11:08
Добавлено, новую версию смотрите на сайте.
А вот просьба, насчёт сделать просмотр памяти БК в визуальном режиме, оказалась намного сложнее, чем ожидалось, и когда будет реализована, вообще непонятно. Проблема в том, что я не сумел создать окно нужной мне конфигурации со всеми контролами полностью вручную, хотя как кажется это настолько просто, что даже примеров в интернете нету.
-
? nzeemin@ - 14.12.2012 11:44
@gid, посмотри в BKBTL окно MemoryMapView.cpp -- http://code.google.com/p/bkbtl/source/browse/trunk/src/BKBTL/MemoryMapView.cpp -- не шедевр, но как основу можно использовать.
-
? gid@ - 14.12.2012 12:06
@nzeemin, Смотрел, такое я могу сделать. Там кстати при изменении масштаба полоски скроллбара не учитываются, они появляются, но содержимое экрана рисуется поверх них.
Просто просили сделать постраничный вывод для БК11М. Я не придумал ничего лучше, чем сделать 4 вкладки и на каждой по 2 экрана с содержимым страниц. А к каждому экрану прилагаются кнопки для смены режимов просмотра. Вот с кнопками и возникла проблема. Они просто не отображаются, т.е. отображается только одна, самая первая кнопка.
Хотя, сейчас пришло в голову, что только одна-то и нужна, без кнопок изменения режимов просмотра можно обойтись.
При всём при этом, всё это - количество вкладок, количество экранов на них создаётся динамически, в зависимости от конфигурации.
-
? gid@ - 16.01.2013 13:53
Выложил новую версию эмулятора, забирать там http://gray-gid.narod2.ru/
По просьбе Dizzy - 15.11.2012 00:34 добавлена карта памяти, правда без сохранения, т.к. не представляю что, как и куда сохранять;
немного подумавши, вернул конфигурацию БК0010(01) + стандартный КНГМД, пусть будет для коллекции;
добавил эмуляцию БК 0011;
исправил множество старых мелких ошибок, добавил новых.
-
? Dizzy - 22.01.2013 20:58
Спасибо огромное за реализацию!!!
-
? Артём - 26.01.2013 22:27
А можно виртуальную клавиатуру сделать, чтобы было видно на ней псевдографику для удобства её ввода.
-
? gid@ - 27.01.2013 11:11
Мысль интересная. Я практически не умею подобные графические интерфейсы. Но как научусь, сразу сделаю.
-
? Аноним - 31.01.2013 23:02
А как загрузиться из Бейсика и монитора в БК0011M, команды для загрузки я знаю вот только загрузка не происходит.
-
? SKcorp. - 31.01.2013 23:40
В мониторе перед именем файла B:
-
? gid@ - 01.02.2013 11:04
>>Аноним - 31 января 23:02
Конкретно в этом эмуляторе так.
Не в курсе, допускают ли оригинальный бейсик и монитор БК0011M работу с дисководом, предполагаю, что нет. Предполагаю, что загрузка файлов возможна только с магнитофона.
Для этого надо отключить опцию "Эмулировать загрузку ленты", поскольку для БК11(м) так и не удосужился сделать её эмуляцию. Станет доступным пункт меню "Загрузить ленту", с его помощью можно выбрать нужный wav файл и запустить его на воспроизведение, естественно перед этим в мониторе/бейсике надо дать команду на загрузку.
Так же и сохранение, надо отключить опцию "Эмулировать сохранение на ленту", поскольку опять же, для БК11(м) не сделана эмуляция. После этого станет доступной панелька "Управление лентами", там перед началом сохранения нажимаем кнопочку "Record" (с кружочком которая), и в мониторе/бейсике даём команду на сохранение файла. Дальше всё само сделается.
Эмуляция загрузки/записи с/на магнитофон(а) сделана ещё Калмыковым для БК10 и не убрана, потому что не мешат.
Эмуляция для БК11(м) не сделана: 1) по причине того, что там есть дисковод, с ним гораздо удобней, чем возня с магнитофоном; 2) лень; 3) гораздо аутентичней слушать звуки загрузки/записи, это как бы приобщает и придаёт реализма и суровости советских бытовых компьютеров.
-
? Patron - 02.02.2013 17:45
Для архива образов дисков БК нужна утилита, позволяющая при запуске создать в текущем каталоге текстовый файл ( Files.txt ), содержащий список всех файлов БК, находящихся во всех образах дисков БК, находящихся в текущем каталоге.
Списку файлов образа должно предшествовать описание формата образа. Список файлов в корне образа и списки файлов в подкаталогах образа должны формироваться в едином стиле (например):
.
Image1.bkd = Size: 819200; Format: ANDOS
[+]Image1.bkd
File1 = Blk: 8 ; Addr: 40000 ; Size: 40000
File2 = Blk: 8 ; Addr: 40000 ; Size: 40000
[+]Image1.bkd/GAMES/
Game1 = Blk: 8 ; Addr: 732 ; Size: 37046
Game2 = Blk: 7 ; Addr: 776 ; Size: 31003
[+]Image1.bkd/GAMES/Copy/
Game1 = Blk: 8 ; Addr: 732 ; Size: 37046
Game2 = Blk: 7 ; Addr: 776 ; Size: 31003
.
D12S01.IMG = Size: 819200; Format: MKDOS
[+]D12S01.IMG
[+]D12S01.IMG/FONT/
AGOT.CHR = Blk: 32 ; Addr: 107342 ; Size: 37374
ALIT.CHR = Blk: 10 ; Addr: 101706 ; Size: 11431
.
Одновременно с выводом основного листинга нужно содздавать вспомогательный ( Files.lst ), не содержащий никакой дополнительной информации о дисках и файлах - только их имена и расширения.
-
? Ал-р - 02.02.2013 18:20
и возможность вытаскивать оттуда любой файл без загрузки эмулятора
-
? Patron - 02.02.2013 18:26
Без загрузки эмулятора любой файл можно вытащить из любого образа при помощи программы BKDE.exe ( http://gray-gid.narod2.ru/bkde_doc.html )
Но вот определить, в каком из тысячи образов находится нужный файл - вручную абсолютно нереально.
-
? Alex - 02.02.2013 23:18
BKDE с дисками DX-DOS работает? А можно сделать, в нём удаление файлов и переименование их, сортировку по имени, а в CSI-DOS дисках показывать номера страниц, в ANDOS дисках даты файлов.
-
? gid@ - 03.02.2013 09:18
Вот как раз с DX-DOS не работает, хотя и ФС там почти как у МСДОС. Не видел я, чтобы DX-DOS был сильно популярен, хотя на мой взгляд - чуть-чуть её допилить, научить работать с доп.ОЗУ СМК, добавить поддиректории, добавить работу с винчестером, ФАТ16 и будет почти аналог МСДОС 4.
с RТ-11 кстати кстати тоже не совсем правильно работает, в том смысле, что sav файлы не анализирует и правильные данные оттуда не берёт.
Всю жизнь на БК пользовался только АНДОСом, поэтому и удаление файлов и переименование сходу могу сделать только для него. В принципе могу ещё для CSI-DOSа сделать, т.к. формат более менее вменяемый, а для MicroDOS - берут большие сомнения, что получится. Там только для МКДОСа всё как-то определённо и однообразно, да и то не факт, что какой-нибудь АОДОС или НОРД не маскируется под МКДОС, т.е. имеет дескриптор МКДОС а структуру файлов - свою. В этом MicroDOSе каждый писатель, как исстари заведено на БК, имеет свою, самую правильную точку зрения на то, как должно быть, и нисколько не заботится о совместимости. Даже со старыми версиями своих же ОС (это я о НОРДе).
А доп информацию, индивидуальную для определённой ОС, в принципе можно попробовать добавить.
И в конце концов исходники доступны всем, взялся бы кто-нибудь, да и добавил нужного функционала, я бы только рад был. Правда в попытках добавить работу с логическими дисками я там начал лепить костыли и городить говнокод, так что проще написать программу заново, чем что-то серьёзное добавить к уже имеющемуся.
-
? -=RUS=- - 03.02.2013 10:26
gid, добавьте пожалуйста в BKDE опцией как BIN c галочкой привязку к имени файла с адресом запуска в квадратных скобках, например 'ИМЯ ФАйЛА [адрес запуска].расширение' очень нужно для каталогизации файлов для БК.
И возможно ли сделать, создание новых дисков *.img, *.bkf c выбором размера диска, как чистых так к примеру уже с предустановленной ДОС (ANDOS, CSIDOS с загрузчиком и самой системой)? А если создать ещё одно окно и там открывать другой диск и копировать с диска на диск, то утилитка BKDE превратится в BK Commander. )))
-
? gid@ - 03.02.2013 11:26
>>-=RUS=- @ - сегодня 10:26
[галочкой привязку к имени файла с адресом запуска в квадратных скобках, например 'ИМЯ ФАйЛА [адрес запуска].расширение']
Имеется в виду делать экспорт файла из образа с разными параметрами, добавляемыми к имени? А то, что просил Patron - 2 февраля 17:45 не подойдёт?
А удаление файлов и переименование их, сортировку по имени, создание новых дисков *.img, *.bkf c выбором размера диска, как чистых так к примеру уже с предустановленной ДОС, создать ещё одно окно и там открывать другой диск и копировать с диска на диск - это получается уже совсем другая программа с совсем иным функционалом, которую нужно начинать писать заново.
-
? -=RUS=- - 03.02.2013 12:09
Мне именно нужен только адрес запуска файла с привязкой к имени при извлечении с образа диска, а блоки и длинна не нужны.
-
? foot - 03.02.2013 17:10
>>? -=RUS=- @ - сегодня 12:09 >>
Непонятно зачем это нужно. Информации об адресе запуска файла в каталоге нет (для не RT-11 дисков естественно).
-
? gid@ - 05.02.2013 14:27
>>? Patron - 2 февраля 17:45
[Для архива образов дисков БК нужна утилита]
Здесь http://gray-gid.narod2.ru/f/BK_IMGList.rar
В архиве исходники и скомпилированный исполняемый файл.
Прога консольная, в качестве параметра командной строки нужен путь к директории, где лежат образы.
Обрабатываются все найденные образы в директории и во всех вложенных поддиректориях.
В результате там, где находится прога создаются два файла Files.txt и Files.lst
В общем-то результат получается не очень наглядный, там наверно надо немного подрихтовать формат выводимого текста.
>>? -=RUS=- @ - 3 февраля 12:09
Совершенно неохота вводить в программу функцию, нужную одному единственному человеку.
Предлагаю такой вариант для каталогизации. Если адрес загрузки >= 01000, то адрес запуска равен адресу загрузки, иначе адрес запуска == "Автозапуск". Если очеь хочется узнать истинный адрес запуска, можно в hex редакторе посмотреть начальные слова у экспортированного файла.
¤
-
? Patron - 05.02.2013 15:05
Супер утилита!
Однако, есть несколько пожеланий:
1. Назвать утилиту BKDL.exe
2. При запуске без аргументов командной строки - создавать в текущем каталоге листинг образов, находящихся в текущем каталоге.
Это позволяет разместить BKDL в папке Windows и заходя TotalCommander-ом в интересующий каталог - просто вводить в командной строке команду "BKDL" и получать именно в этом каталоге листинги всех образов из именно этого каталога.
Получить в программе путь к текущему каталогу можно следующим образом:
...
char acCurrPath[2048];
GetCurrentDirectory( sizeof(acCurrPath), acCurrPath );
-
? Patron - 05.02.2013 15:27
Только сейчас сообразил, что даже при нынешнем способе работы с каталогами - если поместить BKDL в каталог Windows и вводить в командной строке "BKDL ." - то будет создан листинг файлов именно для текущего каталога.
Поэтому, можно работу с каталогами оставить как есть и при запуске без аргументов действительно выводить HELP - это тоже полезно.
-
? Patron - 05.02.2013 15:54
1. Небольшая тонкость - корневой и вложенный каталоги оформляются в листинге по-разному - у корневого в конце слеш, а у вложенного нет:
[+]D04S10.img/
[+]D04S10.img/HDD_DRV
Это так специально или есть смысл все пути завершать слешем ?
.
2. После завершения обработки содержимого каждого образа можно вставлять в листинг пару пустых строк - границы образов в листинге станут более заметны.
-
? Patron - 05.02.2013 16:02
Или выводить пару пустых строк перед именем каждого обработанного образа - тогда и первый образ тоже будет отделён парой пустых строк от начальной строки листинга, где указан путь к обработанному каталогу с образами.
-
? gid@ - 05.02.2013 18:32
[корневой и вложенный каталоги оформляются в листинге по-разному]
Как в линуксе: / - корень, /usr/bin - вложенные директории
.
Ещё, сейчас навскидку не помню, но если программа запущена из папки Windows, GetCurrentDirectory разве не выдаст директорию, откуда запущена программа, т.е. C:\Windows ? В общем-то я уже писал нечто подобное, но сейчас компьютер с моими старыми проектами немного недоступен, как только смогу, посмотрю как правильно делать, добавлю обработку параметров командной строки, чтобы ключами можно было режимы работы задавать. И посмотрю, что с читабельностью результатов сделать можно.
-
? Patron - 05.02.2013 19:52
Если поместить BKDL в каталог Windows и вводить в командной строке TotalCommander "BKDL ." - то обрабатывается тот каталог, который открыт на текущей панели TotalCommander и файлы листингов помещаются именно туда - поэтому специально обрабатывать в BKDL командную строку без параметров большого смысла нет - можно оставить как есть.
-
? Patron - 05.02.2013 20:49
Обнаружена ошибка при работе BKDL - обработка образов из этого архива приводит к вылету программы:
( http://archive.pdp-11.org.ru/BKGAMES/gina_bk/gina_bk.rar )
-
? gid@ - 05.02.2013 21:53
В архиве, в файле gbk_011.bkd повреждён каталог. На всех образах с повреждённым каталогом программа ведёт себя непредсказуемо. Конкретно в этом случае происходит зацикливание с переполнением стека, в результате - вылет, алгоритм вывода каталога-то рекурсивный. например в BKDE этот образ выглядит с кучей директорий, ссылающихся на самих себя. Я не делал никаких защит, вообще ничего, это вообще пробная версия, призванная продемонстрировать работоспособность в принципе.
-
? Mad Killer - 06.02.2013 16:10
Спасибо,очень хорошая и полезная вещь!
-
? Kisser - 06.02.2013 20:19
Прога рулезная! Теперь не надо лазить по каждому имиджу! Спасибо!
-
? gid@ - 07.02.2013 10:19
Выкладываю доработанную версию. http://gray-gid.narod2.ru/f/BKDL.rar
1. переименовано в BKDL, прежняя ссылка больше не верна.
2. исправлено несколько ошибок, из-за которых экзотические образы ANDOS и логические диски в формате DX-DOS не распознавались.
3. добавлена обработка параметров командной строки и изменено поведение по умолчанию. Теперь обрабатывается только заданный каталог, без входа в подкаталоги. Чтобы обработать ещё и вложенные подкаталоги нужно задать ключ "-r"
4. При запуске без параметров обрабатывается текущий каталог, какой-либо другой каталог задаётся параметром командной строки.
5. Справка по использованию выводится ключом "-h".
6. Чутоточку улучшена читабельность получаемых списков.
7. Добавлена защита от слишком глубокого ухода в рекурсию.
Если каталог образа повреждён и содержит мусор - в список так и будет выводиться мусор.
-
? tim - 07.02.2013 11:48
А где в архиве EXE-шник ?
-
? gid@ - 07.02.2013 12:33
Оплошал, ехешник по пути в архив потерялся. Перезалил новый архив, теперь всё есть.
-
? Макс Багаев@ - 12.02.2013 09:31
to GID приглашаю на хостинг pdp-11.ru
пример http://gray.pdp-11.ru/misc.html (скачано телепортом)
соответственно дам FTP доступ
¤
касаемо BKDL - на сколько сложно переписать под Linux ? дабы прогнать автоматическую генерацию README.txt по образам дисков что меня на хостинге ?
-
? gid@ - 12.02.2013 09:49
>> ? Макс Багаев @ - сегодня 09:31
[приглашаю на хостинг pdp-11.ru]
можно и перейти, тем более яндекс передаёт народ ukoz'у, и фиг знает как оно там будет, только имя путь лучше будет gid.pdp-11.ru, более понятно.
На gray-gid.narod2.ru внизу написан почтовый ящик, напишите туда условия и прочую информацию.
[касаемо BKDL - на сколько сложно переписать под Linux ?]
надо будет полностью писать с нуля заново, поскольку механизм работы с образами просто с минимальными изменениями взят из BKDE и по максимуму плотно завязан на MFC.
И это всё надо переписать заново, а поскольку я пол линукс не писатель, я под линукс читатель, то нормального результата всё равно выдать не смогу.
И я бы не стал торопиться, тут в процессе работы выяснилось, что всякие AODOSы и NORDы которые нельзя опознать по меткам, определяются как MicroDOS и некорректно обрабатываются.
-
? Max Bagaev@ - 12.02.2013 15:05
ok
http://gid.pdp-11.ru
остальное ушло почтой
-
? tim - 18.02.2013 19:53
dig, хотелось бы еще реализации импорта в Excel, ну или хотя бы предусмотреть разбивку текста вида:
-
-так сейчас
[+]D01S01.img/УТИЛИТЫ
ANFORMAT = Blk: 0003 ; Addr: 001000 ; Size: 011357
ANSETUP = Blk: 0001 ; Addr: 001000 ; Size: 003654
-
-так хочется
D01S01.img/УТИЛИТЫ;ANFORMAT;Blk: 0003 ;Addr: 001000 ;Size: 011357
D01S01.img/УТИЛИТЫ;ANSETUP;Blk: 0001 ;Addr: 001000 ;Size: 003654
-
возможно организовать вывод с разбивкой по таким полям в виде опции ? ну и желательно без пробелов. Это сделает возможным вывод в офис для дальнейшей обработки
-
? gid@ - 18.02.2013 20:20
Никогда не умел и не возникало надобности экспорта напрямую в Excel, знаю что делается это через odbc коннекторы и работать как с базой данных.
Но вот в csv файл который подхватится Excelом можно, но будет возможность заняться не очень скоро. Я так понимаю, что имя директории, где лежит конкретный образ не нужно?
Причём слова Blk: Addr: Size: не нужны, т.к. их можно в заголовке один раз написать.
-
? tim - 18.02.2013 21:47
имя директории нужно. в принципе конечно ручками все прекрасно делается, но уж больно долго :)
-
? tim - 22.02.2013 14:36
dig, в BKDE видно удаленные файлы, а возможно вытащить их на диск пользователя ? (не восстановить обратно в образ, а просто сохранить)
-
? gid@ - 28.02.2013 15:09
[хотелось бы еще реализации импорта в Excel]
почти сделано.
[в BKDE видно удаленные файлы, а возможно вытащить их на диск пользователя ?]
тоже почти сделано.
-
? gid@ - 02.03.2013 13:09
Обновлена прога BKDL, теперь если задать ей ключ -c, будет генерироваться таблица, .csv файл открываемый Excelем.
В BKDE теперь можно извлекать удалённые файлы, а заодно и участки, отмеченные как сбойные в микродос.
Забирать там http://gid.pdp-11.ru/ или там http://gray-gid.narod2.ru/
-
? tim - 02.03.2013 14:08
Здорово!
-
? tim - 02.03.2013 22:04
dig, теперь, когда пути к файлам легко извлекаемы, возникла следующая идея - возможность запуска эмулятора командной строкой со следующими параметрами:
/p1 c:\ПУТЬ_К_ФАЙЛУ_ОБРАЗА\ПУТЬ_К_ЛОГИЧЕСКОМУ_ДИСКУ\ - задать шаблон_1 для местонахождения образов
.
/p2 c:\ПУТЬ_К_ФАЙЛУ_ОБРАЗА\ПУТЬ_К_ЛОГИЧЕСКОМУ_ДИСКУ\ - задать шаблон_2 для местонахождения образов
.
/ldA p1\WRKANDOS.IMG - эмулировать логический диск как дисковод A:
.
/ldB p2\IGRY_DLYA_ANDOS.IMG - эмулировать логический диск как дисковод B:
.
/bA или /bB - загрузка с привода А или В
¤
чтобы можно было загрузить файл с несистемного логического диска задается 2 параметра: образ системного диска с которого будет вестись загрузка и образ с файлами игр, графики, и пр.
Такое возможно реализовать или времени много затратиться ?
Если будет данная фича, можно будет реализовать что-то типа базы данных по софту БК с поиском и прочими радостями.
-
? gid@ - 03.03.2013 09:48
В чём смысл нескольких шаблонов? Это конфликтует с пользовательским интерфейсом. К тому же в планах, отложенных на неопределённый срок - написание собственного проводника, позволяющего выбор образов из любого места.
Логический диск - имеется в виду именно лог.диск внутри образа? А хоть одна БКшная ОС позволяла загружаться с лог.диска на дискете?
С дискет и винта загружается ведь не сам эмулятор, а то ПО, которое запускается на эмулируемом железе и если что-то невозможно на БК, то невозможно и в эмуляторе.
[/bA или /bB - загрузка с привода А или В]
По традиции прошивка контроллера дисковода загружается с первого найденного дисковода. Если примонтирован загрузочный образ в дисковод А, то загрузка будет с него и т.п.
Переопределять стратегию загрузки - это нужно играться с временным отмонтированием образов на момент загрузки и примонтированием их обратно после - эта возня не оправдывает затраченных усилий.Некоторые из приведённых параметров командной строки имеет смысл реализовать, но делать этого я не буду до тех пор, пока эмулятор не достигнет более-менее завершённой стадии, когда уже можно будет добавлять всякие мелкие полезности и удобства.Зато есть товарищи Дмитрий Николаевич и Александр... оттуда http://bk0010.org/forum/?id=12492 , желающие иметь проект под управлением хоть какой-нибудь VCS, но не желающие взяться за это самостоятельно. Может их попросить? пусть у них стимул будет.
-
? Patron - 03.03.2013 14:12
Чтобы выбирать образ из любого места - вполне достаточно вызывать стандартный диалог [ GetOpenFileName(&ofn) ]:
http://emulator.pdp-11.org.ru/misc/ofn.txt
-
? tim - 03.03.2013 14:27
>> В чём смысл нескольких шаблонов? Это конфликтует с пользовательским интерфейсом.
Смысл вот в чем. К примеру есть несколько образов дискет CSIDOS с музыкой, но незагрузочных, для того чтобы их послушать нужно сначала загрузить саму операционку, но с другой "дискеты", на которой и плеер есть. Скинем образы системных дисков с полюбившимся софтом в одно место и будем указывать его месторасположение перед загрузкой той или иной системы: MKDOS,ANDOC,CSI и прочие. Т.е. грузить системный АНДОС и с ним вместе еще и несистемный андосовский диск. На разные приводы. Насчет конфликтов с интерфейсом - можно его избежать, примонтировав нужные файлы *.IMG к дисководам А и В с записью в INI файл. ........
... мысль на лету: а может просто расширить возможности INI файла ? По сути загрузить любой конфиг можно изменив только пару строк:
Drive A: = ANDOS_SYSTEM.img
Drive B: = ANDOS_GAMES_1.img
только есть одно НО, в качестве пути прописать не только файл образа IMG, но и логического диска внутри него. Т.е. в большом по размеру физическом файле GAMES.img, который из себя представляет диск БК в фомате МКДОС (предлагаю этот вариант как оптимальный для хранения), могут находится логические диски (образы дискет) уже других систем, и не все они обязательно загрузочные.
.
>> написание собственного проводника, позволяющего выбор образов из любого места
И я об этом же думал, проводник из которого можно загрузить файл на исполнение - здорово. Не забывайте, что некоторым играм нужнв дополнительные файлы: заставки, уровни, и пр., а некоторым и отдельный диск (Остров Обезьян к примеру), все равно не обойтись без подключения полного диска на котором этот файл лежит.
.
>> Логический диск - имеется в виду именно лог.диск внутри образа?
Да именно так, а иногда даже были лог. диски внутри лог. диска, что тоже бы неплохо предусмотреть
.
>> А хоть одна БКшная ОС позволяла загружаться с лог.диска на дискете?
При работе в составе SMK идеология позволяет подсунуть свой драйвер, т.е. можно было определить логдиск как дискету, и загрузиться уже с нее. Таких прог встечал несколько, припоминаю EM и EMAB, взяв за основу которые я написал для себя свой загрузчик логдисков МКДОСа
.
>> По традиции прошивка контроллера дисковода загружается с первого найденного дисковода
Ладно, это было опционально, пусть грузится с привода 0 по умолчанию
.
>> Переопределять стратегию загрузки - ... - эта возня не оправдывает затраченных усилий
dig, хорошо уже то,что у Вас на это время находится, уважуха! если бы мог писать, тоже бы поучавствовал, но такой большой проект не под силам, к сожалению.
Учитывая вышесказанное, в принципе все решаемо переопределением в INI-файле дисков А и В, осталось только научить эмулятор распознавать в пути логдиски. Т.е. в записи C:\___bk\_с моего Quantum\STORAGE.IMG /LD_GAMES/LD_HCDOS/LD_MonkeyIsland/ можно было определить логдиск с образом дискеты "Острова Обезьян" с названием LD_MonkeyIsland, который лежит в образе с другими игровыми "дискетами" HC-DOS в логическом диске LD_HCDOS, который в свою очередь находится в логдиске с играми других операционок LD_GAMES в файле STORAGE.IMG. Надеюсь объяснил не очень запутанно.
-
? tim - 03.03.2013 14:54
Лишканул я конечно с тройным вложением, но хотя бы с 2 кратным
-
? gid@ - 03.03.2013 17:39
>>? Patron - сегодня 14:12
[Чтобы выбирать образ из любого места - вполне достаточно вызывать стандартный диалог]
А потом чертыхнуться, "чёрт, не тот образ" или "блин, да он не загрузочный" и в цикле выбирать, выбирать, выбирать до тех пор пока не угадаешь, либо иметь под рукой рулон распечаток со списком параметров всех образов, их ведь даже не десятки, их больше 600, правда многие дублируются, но их всё равно много.
Цель создания собственного проводника - кастомизировать список выводимых в нём файлов, туда надо добавить некоторые дополнительные колонки в таблицу. В интернете полно людей интересуется, как модифицировать диалоговое окошко проводника (простейшие примеры, как добавить свою кнопочку или своё текстовое поле не в счёт, это делается просто), на что им всем даётся один ответ "никак, проще написать свой проводник". А с введением Vista Style проводника стало всё ещё более безнадёжно, даже микрософтовцы не в состоянии предоставить ни одного примера.>>? tim - сегодня 14:27
С реализацией механизма монтирования образов из любого места, а не только из жёстко заданной директории почти все ваши желания реализуются сами собой. Это всё есть в ToDo листе, но всё упирается в отсутствие кастомного проводника, который поможет выбрать нужный образ из десятков их.
[При работе в составе SMK идеология позволяет подсунуть свой драйвер...определить логдиск как дискету, и загрузиться уже с нее]
Ну так раз такие способы уже реализованы, зачем переизобретать их заново, можно просто использовать их как и на реальной БК.
Я сейчас открою секрет. Эмулятор не только ничего не знает о логических дисках, он даже никакого понятия не имеет о структуре образов дискет, для эмулятора это просто файл, ничем не отличающийся от других файлов. Всем этим занимается БКшное программное обеспечение, которое на полном серьёзе уверено, что работает оно на реальном железе. Возможности эмулятора ограничиваются возможностями БКшного ПО и железа.
Если вы можете загрузится с логического диска минуя загрузчик самой дискеты на реальной БК, то то же самое можете повторить имея такой-же образ и на эмуляторе без лишнего шаманства с ини файлом.
-
? tim - 03.03.2013 19:30
>> Я сейчас открою секрет. Эмулятор не только ничего не знает о логических дисках
ну ладно, это не такой уж и неизвестный секрет.
Не хотелось прыгать снова на костылях, но как автор сказал - так и будет, и на том спасибо.
-
? Patron - 03.03.2013 19:33
Возможность выбора образа ( с автоматическим редактированием INI-файла ) при помощи [ GetOpenFileName(&ofn) ] не мешает делать собственный проводник, потому что для добавления такой возможности нужно примерно в 100 ( если не в 1000 ) раз меньше усилий и это сразу будет огромный прогресс по сравению с отсутствием такой возможности.
-
? Дмитрий Николаевич@ - 03.03.2013 21:34
@gid, возможно я не по теме пишу, но не забыли ли вы с последним обновлением вложить новые файлы BKDE/imgos/BKDImage.* ?
¤
А именно для функции void CBKDImage::ExtractObject(FileRecord *sFile, BOOL bExtractAsBin)
¤
Возможно я и не прав, но увы, не собирается,- вы добавили третий параметр при вызове этой функции из MyListCtrl.cpp (строка 282)
¤
Вдогонку:
Сообщите мне в почту (scalolaz_scat(dog)mail.ru) ваш гугглоаккаунт или гугломыло (ваша почта на яндексе не подходит), добавлю сюда: https://code.google.com/p/bknew/
Надеюсь, поставить Тортиллу хотя бы, вы осилите. :)
¤
Я пока разбираюсь со свойствами проектов. Застопорилось на вышеприведённой функции.
-
? Terra - 04.03.2013 12:14
У меня не работает сочетание АР2+цифра, что я делаю не так? И вообще у меня ноут без дополнительной цифровой клавиатуры, можно как-то переделать управление? По поводу HDDImgMaker зачем это надо, чтобы задать модель и серийный номер винта? Вся информация о chs, уже хранится в самом образе. Неужели нельзя избежать дополнительной конвертации.
-
? Terra - 04.03.2013 12:24
Самое хорошее управление с клавиатуры было в эмуляторе Камнева https://www.dropbox.com/s/g1z0kpovterkjno/2004-03-27--18-52-06-007.JPG?m
-
? gid@ - 04.03.2013 13:03
>>? Terra - сегодня 12:14
[У меня не работает сочетание АР2+цифра, что я делаю не так?]
Не знаю, возможно на ноутбуке ctrl+цифра занято под какие-то ноутбучные функции вроде увеличить/уменьшить яркость экрана, громкость звука и т.п. Обычно эти функции выключаются каким либо способом, заданным конкретно для конкретного ноутбука.
[можно как-то переделать управление?]
Можно. предлагайте варианты. Можно использовать трёх-четырех клавишные сочетания типа Shift-Ctrl-Alt-W|A|S|D, возможно это будет удобнее.
[зачем это надо, чтобы задать модель и серийный номер винта?]
Низачем. По стандарту АТА команда IDENTIFY DEVICE (ECh) должна выдавать кучу параметров, в том числе и модель и серийный номер винта, геометрию винта и кучу всего прочего. Просто я досконально повторял эмуляцию АТА интерфейса.
[Неужели нельзя избежать дополнительной конвертации.]
Можно. Можно 512 байтов, выдаваемые командой АТА IDENTIFY DEVICE (ECh) хранить в отдельном файле, и в нём же хранить ссылку на посекторный образ. Всё это усложняет программу. Если очень хочется - займитесь усложнением.
[Самое хорошее управление с клавиатуры было в эмуляторе Камнева]
В принципе можно выключить все акселераторы (в конце концов, можно мышкой из меню функции эмулятора включать/выключать/вызывать), выпилить отладчик (он нужен только задротам) и на освободившиеся функциональные клавиши повесить верхние кнопки БК. Заодно с выпиливанием акселераторов можно будет и перехватить кнопки Alt и Win, которые не перехватываются через OnKeyDown/OnKeyUp, и перехват которых дело более сложное.
-
? Patron - 04.03.2013 14:38
Для перехвата кнопок [LAlt], [RAlt] и [F10] достаточно установить обработчик сообщения WM_SYSKEYDOWN, завершающийся " return 0; "
Если хочется различать одиночное нажатие кнопки Alt и нажатие Alt одновременно с другими клавишами - нужно это проверять дополнительно, например так:
http://emulator.pdp-11.org.ru/misc/SYSKEY.txt
...
Для перехвата кнопок [LWin], [RWin] и [Apps] ( а также для перехвата [CapsLock], [NumLock] и [ScrollLock] и прямого управления лампочками клавиатуры ) нужно установить глобальный хук клавиатуры ( с непривычки может быть трудновато ). Подробно описано здесь: ( http://zx.pk.ru/showthread.php?t=20092&page=21 ) и здесь: ( http://zx.pk.ru/attachment.php?attachmentid=39097 ).
-
? Terra - 05.03.2013 00:03
>> gid
>> возможно на ноутбуке ctrl+цифра занято под какие-то ноутбучные функции
для этого есть клавиша Fn, а вообще я тут проверил на нормальном компе ctrl+цифра - работает, на буке даёт всплывающее сообщение "Nothing to copy!". Да и Rctrl для АР2 вместо RAlt правильней (т.к. Alt+Enter переключение в fullscreen и обратно).
Геометрию винта можно брать из стандартного образа, она же там есть обязательно, а вместо имени и серийного номера выдать какую-то стандартную информацию. Я уже не занимаюсь программированием, мой максимальный проект 1000 строк кода для ардуино.
-
? gid@ - 05.03.2013 09:34
[RAlt правильней]
Alt вообще не перехватывается, т.к. я использую OnKeyDown/OnKeyUp, а не WM_SYSKEYDOWN (Patron писал ою этом выше.)
[Геометрию винта можно брать из стандартного образа]
Технически проще на запрос (ECh) выдать уже готовый массив данных, чем формировать его на лету из кучи разрозненных мест. Тем более, что геометрия винта в образах альтпро и самара хранится в разных местах, а если использовать что-либо более продвинутое, например стандартный мсдосный МБР и разметку диска - там геометрии нету, можно конечно ввести, но зачем, когда есть стандарт ATA, в котором всё продумано.И вообще, мне уже начинают надоедать хотелки и претензии всех и каждого. Я писал эмулятор под себя, как мне удобнее, я исправляю какое-либо неудобство тогда, когда оно меня вконец задолбает и рождается решение, не вносящее ещё больших неудобств, а до этого просто мирюсь. Я вижу, что там многое работает не так, как мне бы хотелось, и вообще неправильно, но правильных решений просто не вижу.
Вот там https://code.google.com/p/bknew/ создан проект, кто хочет - присоединяйтесь и делайте, так как вам будет удобнее. А я прекращаю заниматься им до лучших времён, пока снова не появится свободное время.
-
? Terra - 05.03.2013 10:46
А описания формата hdi есть? Я бы свою утилитку может бы доработал, что бы избежать лишних конвертаций.
-
? gid@ - 05.03.2013 11:34
в hdi сперва идёт 512 байтов, выдаваемые винчестером в ответ на запрос (ECh), формат подробно описан в спецификации АТА. Лучше смотреть самую первую спецификацию АТА-1, т.к. потом там добавилось много лишнего, всё равно не используемого на БК.
Затем идёт обычный посекторный образ винчестера.
используется такая структура
struct SYS_SECTOR
{
WORD main_config; //0
WORD cylinders; //1
WORD reserved2; //2
WORD heads; //3
WORD raw_bytes_per_track; //4
WORD raw_bytes_per_sector; //5
WORD sectors; //6
WORD reserved7[3]; //7,8,9
BYTE serial_number[20]; //10
WORD buffer_type; //20
WORD buffer_size_in_sectors; //21
WORD ecc_bytes_num; //22
BYTE fw_version[8]; //23
BYTE model_name[40]; //27
WORD word47; //47
WORD word48; //48
WORD capabilities1; //49
WORD capabilities2; //50
WORD reserved51[6]; //51
DWORD capacity_in_sectors; //57,58
WORD reserved59; //59
DWORD total_used_sectors; //60,61
WORD reserved62[194]; //62
};
-
? Бармалей - 13.03.2013 00:16
Расскажите про формат TAP'ка, сколько скоростей чтения и записи, количество файлов в формате, не стандартные драйвера магнитофон типа Турбо-драйвера копировщика HELP7, защищенные файлы от записи с кассет (у меня есть такие правда только в WAV формате пока). Хорошо бы было хранить несколько файлов в формате как в ZX TAP, если игра состоит из 3 или более файлов.
-
? gid@ - 13.03.2013 10:22
Формат tap - по сути упакованный wav, когда каждый сэмпл wav файла упаковывается в 1 бит в формате tap.
При чтении tapа, он в памяти всё равно разворачивается в wav, и потом обрабатывается как обычный wav файл.
Если величина значения сэмпла выше средневесового коэффициента, то бит == 1, иначе == 0.
Тап ни в коем случае не контейнер и не предполагает им становиться, если вы сами не напишете все предполагаемые функции, присоединиться к разработке можно по ссылке данной в посте от gid @ - 5 марта 09:34
И вообще, работа с wav файлами при наличии эмулятора дисковода - жуткий анахронизм, нужный либо тру олдфагам для получения удовольствия от самого процесса и звука, записанного в wav, либо параноикам, не доверяющим всем этим новинкам вроде дисководов, и если б была возможность, пользовавшихся бы перфокартами.
Эмулятор имеет функционал для конвертации практически любых wav файлов (не понимает wav разрядностью более 16 бит на сэмпл и частотой дискретизации более 44100Гц) в обычные bin файлы, которые потом можно импортировать в образ дискеты.
-
? Дмитрий - 08.04.2013 13:18
Не буду заводить новую тему ради одного вопроса, поэтому спрошу тут.
Ув. gid, можно кратко узнать что конкретно было улучшено/исправлено в turbo8dk? Кстати, текст с исправлениями непригоден для компиляции в оригинальном turbo8dk. Пришлось менять упакованные пробелы на табуляцию и нули в конце строк на 0x0A. После этого все скомпилировалось.
-
? gid@ - 08.04.2013 13:49
В самом исходнике и написано в комментариях: добавлена регистронезависимость, ибо я задолбался уже после IDA делать большие буквы из маленьких, и добавлена возможность оставлять пустоты перед и после ',' между операндами, и перед и после '=' в присваиваниях, ибо я опять же задолбался после IDA убирать пробелы после запятых. Там ведь есть исходники с комментариями и спецом без комментариев, чтобы скомпилировать можно было. А в моём оригинальном turbo8dk текст замечательно компилируется, т.к. ему пофиг на коды 1..010, 013..037, он их изначально считал пробелами при компиляции, а коды 0 и 012 считал концом строки. 011 как обычно - табуляция, тоже при компиляции считал за пробел.
Бывший у меня изначально turbo8dk как родные компилировал тексты в форматах vortex, микро (когда конец строки - 0), обычном txt с виндозным концом строки 0xd 0xa, я даже и не подозревал, что какие-то проблемы могут возникать.
-
? Дмитрий - 08.04.2013 13:57
Компилировался оригинальным, который лежал в WRKANDOS2 вместе с сырцами и исправленными. Старый был 141хх длиной, новый стал 15ххх. Надо будет поглядеть где там распознавание кодов и "доправить", чтоб любые концы строк воспринимал. А так он текст грузит, говорит длина 62ххх, строк 13. А исправленный показывал число строк 3517 где-то.
..
По идее можно и ввести ему поддержку страниц SMK. А также просто выкусить редактор, юзать Vortex и компилить тексты хоть какой длины.
-
? tim - 19.04.2013 06:23
BKDE 1.8.220.476 х86
При работе с образом, содержащим в себе несколько логдисков МКДОСа разной длины от 200 до 800 блоков (100-400 Кб) обнаружил косяк. Извлекаю эти логдиски и записываю на диск. Затем захожу в них-вижу все файлы, но при попытке запустить что-то с этих образов получаю печальку. Т.е. сам каталог сохраняется, данные теряются. Это заметно при просмотре логдиска в виде картинки. Причем несколько таких извлеченных образов имели одинаковую длину при фактически разных размерах. Представлю файлы если нужно,но не ранее 23-го сего месяца.
-
? gid@ - 19.04.2013 09:43
Нужен образ, который вызывает проблему. Потому что на всех образах дискет из архива свиблово http://pdp-11.ru/mybk/IMG/svib/ всё работает корректно. Особенно характерный пример http://pdp-11.ru/mybk/IMG/svib/12-97.img - там внутри лог.диска ещё несколько лог.дисков.
-
? Voland@ - 19.04.2013 10:45
Ув. gid, подскажите, не планируется ли в BKDE возможность работать с образом винчестера БК, в частности ФС ANDOS, MK-DOS (включая логические диски), CSI-DOS? Интересует хотя бы возможность добавления файлов.
Функция эта интересна мне как подспорье полной каталогизации всего БКсофта. Потому как пока мне это представляется весьма муторным занятием. Под каталогизацией я понимаю две вещи:
1. Создание на сайте таблицы, где по полям будет название и описание программы, год выхода, авторство, совместимость с ОС и моделями БК, исполняемые файлы, исходники (если есть), скриншоты. Одна запись таблицы - одна программа.
2. Образ винчестера, где есть все эти программы из таблицы. Предполагаю как-то увязать запись в таблице с местонахождением на винчестере - чтобы легко было найти.
.
Кстати, добавили перемычку в SMK-512? Нормально работает сейчас Reset или подглючивает?
-
? gid@ - 19.04.2013 11:35
Именно в BKDE не планируется. Эта утилита рассчитана на работу только с образами дискет.
Для работы с образами винчестера планируется другая утилита, однако дальше желания её написать дело пока не сдвинулось. Хочется сделать полнофункциональную работу с разметкой винчестера, т.е. работу с разделами, а так же полнофункциональную работу с ФС: чтение, запись, удаление, перезапись файлов. Для андос и мкдос это практически сделано, для ксидос в принципе тоже возможно, но все попытки сделать это же для аодос и норд вгоняют в полное уныние. Я не понимаю, чем думали авторы этих ОС, делая такие непродуманные системы. да ещё и кидаясь в разные крайности от версии к версии. Да и времени свободного летом не будет.Перемычку добавил, ресет работает как надо, но более тщательно проверять работу буду когда буду запускать тесты таймингов в ОЗУ СМК.
-
? Voland@ - 19.04.2013 12:57
Я заметил что ресет работает таки нестабильно - через раз на некоторых экземплярах БК0011М, буду нестабильный экземпляр отдавать разработчику, чтобы допиливал.
Вот-вот должен заработать СМК512 в составе БК12, там уже и оставшуюся проблему зависаний при форматировании выкосим быстро.
-
? Андрей - 30.04.2013 10:12
Уважаемый gid, скажите вы можете сделать в эмуляторе поддержку подключения логических дисков от HDD больших размеров от 800кб, как простых дисков? А то с них большинство программ не грузится. Возможно ли это сделать?
-
? Дмитрий - 30.04.2013 10:47
Подключение образов более 800кб как дисков А/В, имхо, невозможно. Там эмуляция именно дисковода, кол-во дорожек ограничено 40/80+-1/2.
-
? gid@ - 30.04.2013 11:13
>>? Андрей - сегодня 10:12
Чем не устраивает подключение собственно образа HDD как виртуальный HDD, который в точности эмулирует работу реального HDD?
Если вы умудрились сделать посекторный образ логического диска HDD больших размеров, почему бы не сделать посекторный образ всего HDD и не подключить его к эмулятору именно как HDD?
Сразу отпадает куча проблем.
-
? Дмитрий - 30.04.2013 13:19
Кстати, совсем забыл спросить. В эмуляторе при выборе "комплектации" БК+SMK невозможно загрузиться с подключенных образов к дисководам А/В при их наличии - система упорно грузится с образа HDD. Можно как-то сделать опцию обхода всех "букв" приводов до винта и при наличии "вставленного диска" сделать попытку загрузиться с него. Это не критично, но некоторые удобства есть.
-
? gid@ - 30.04.2013 14:24
[невозможно загрузиться с подключенных образов к дисководам А/В при их наличии]
как и в оригинальном СМК, чтобы загрузиться с дисковода надо при запуске держать нажатой клавишу A или B, главное успеть нажать клавишу до того, как нарисуется дискета. Из-за неправильных таймингов там слишком уж всё быстро проскакивает
Да и ресет + буква работает, если не успели с первого раза - со второй попытки уж точно можно успеть.
-
? gid@ - 30.04.2013 15:33
По адресу gray-gid.narod2.ru сайта больше нету, не понравился мне этот ucoz.
Теперь сайт находится только здесь http://gid.pdp-11.ru/
-
? Дмитрий - 30.04.2013 16:54
>> чтобы загрузиться с дисковода надо при запуске держать нажатой клавишу A или B
Семен Семеныч... Запамятовал...
- << Форум