Бытовой ретро-компьютер своими руками
http://forum.pk-fpga.ru/

Эмулятор БК-0010-01, БК-0011 и БК-0011М
http://forum.pk-fpga.ru/viewtopic.php?f=45&t=5441
Страница 4 из 8

Автор:  BD [ 23 апр 2016, 13:41 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Спасибо, все работает. Но, хотелось бы эмуляцию спикера тоже в процесс включить, т.к. в виндах куча драйверов на звук вешается.
Звук записал (реальный БК не восприниает)
https://www.youtube.com/watch?v=rc5B0JiJEew
Потом просто "звукозапись" запустил, оно отдает приоритет...
https://www.youtube.com/watch?v=H71J1YPNZdA

Автор:  gid [ 25 апр 2016, 11:33 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

BD писал(а):
Но, хотелось бы эмуляцию спикера тоже в процесс включить,

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

Автор:  BD [ 25 апр 2016, 14:42 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

На 1м ролике слышно, "неубиваемый" теперь
Audiodg.exe добавляет лишние "щелчки". Лечится только запуском SoundRecorder.exe.
Просто пока не удалось заставить ни один дисковод с БК работать, МГ-вход тоже вариант ;)

Автор:  SerGun [ 24 авг 2016, 18:03 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Добрый день!

Хотел перенести свои программки, которые у меня сохранились в виде бумажных записей, написанные на Бейсике еще в школе почти аж 30 лет назад (!) в эту систему, чтобы продемонстрировать подрастающему поколению "как оно было". Стал работать с системой, почитал то, что удалось найти в интернете, и понял, что, набив сюда программу на Бейсике, я могу ее сохранить в файл (.bin или .cod), но сделать распечатку именно самой программы не могу - так как и в том, и в другом формате файла я вижу только крокозябры. Действительно ли это так? Есть ли возможность "вытащить" из файла .cod бейсиковский текст? Или каким-то другим способом выгрузить читаемый текст программы?

Извиняюсь, если вопрос наивный, но ответ на него я пока не нашел...

С уважением,
Сергей.

Автор:  gid [ 30 авг 2016, 12:05 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

SerGun писал(а):
набив сюда программу на Бейсике, я могу ее сохранить в файл (.bin или .cod), но сделать распечатку именно самой программы не могу - так как и в том, и в другом формате файла я вижу только крокозябры. Действительно ли это так? Есть ли возможность "вытащить" из файла .cod бейсиковский текст? Или каким-то другим способом выгрузить читаемый текст программы?

На БК у бейсика текст программы сам по себе отдельно в памяти не хранится, он там весь перемешан какими-то своими данными, может быть индексами, для упрощения компиляции, поэтому ни из .bin, ни из .cod исходный текст извлечь не получится, хотя он там и присутствует. Был ещё такой формат .asc - это как раз исходный текст бейсика, разбитый на кусочки по 128 байт. На магнитофон он так и сохранялся, большой кучей маленьких файликов. Как дело обстояло в бейсике, адаптированном под дисковод - не знаю.
Эмулятором формат .asc не поддерживается, потому что он нерационален. Принтера на БК у меня никогда не было, поэтому он тоже никак не эмулируется, я не знаю, как сэмулировать то, о чём я представления не имею.
Во время знакомства с БК у меня всегда было так, что надо было набрать текст программы на бейсике из тетрадки и потом сохранить его на кассете. Обратной ситуации никогда не возникало. Поэтому единственно возможный способ сохранить бейсиковский текст программы - переписать его руками с экрана на бумажку, или набить в текстовый файл.
И я не буду обещать, что что-то в этом плане улучшится. Разве что когда-нибудь попробую сделать эмуляцию принтера.
-------------
Upd.
Таки я немного напутал. .asc не поддерживается в преобразованиях в .tap<->.wav<->.bin, а так то он вполне себе работает.
Если в бейсике сохранить файл командой SAVE "PROG, то при включенной эмуляции записи на ленту в директории BIN сохранится начальный файл PROG .ASC.bin - заголовок, и целая куча файлов PROG .ASC #000.bin, PROG .ASC #001.bin, ...
из которых можно будет собрать исходник. нужно у каждого такого файла убрать первые 4 байта - заголовок .bin и склеить их в один большой файл.

Автор:  SerGun [ 30 авг 2016, 15:29 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

to gid

Ну, у меня в те годы технология была примерно такая же: сначала пишешь программу на бумаге, потом забиваешь ее на школьной БКшке, отлаживаешь, сохраняешь на учительской машине командой CSAVE. Желающие потом могли скачивать ее на свои БКшки командой CLOAD. Поэтому те школьные программки сохранились либо в электронном виде на учительской машине (была потом идея сохранить свои программы на 5-дюймовой дискете, но руки так и не дошли), либо на бумаге.

Вот сейчас перебил пару программ с бумаги в эмулятор. Бумагам 25 лет, рукописи не горят! :hah: Программки работают. Поэтому хотел и сам текст программ из бумажного в электронный вид перевести. Но глупо же набивать текст программ еще раз, если он уже забит в машину! Поэтому и возник такой вопрос.

Попробовал Ваш способ. Геморрой, конечно, еще тот :hah: Но работает. Чтобы в тексте читались русские буквы (которые есть в программе) открывал файлики в ворде в кодировке Другая-Кириллица (KOI8-R). Но при таком открытии файла пропадают символы псевдографики (всякие там уголки, линии, если они использовались для печати рамок таблиц). Перепробовал разные кодировки при открытии - понял, что ничего не получается. Придется их потом в тексте программы вручную переправлять. Но в любом случае - это всё равно лучше, чем вручную набивать еще раз всё заново, так что большое спасибо!

Кстати, попробовал потом эти кусочки (PROG .ASC #000.bin, PROG .ASC #001.bin, ...) загрузить командой LOAD "PROG - программа загружается и работает.

P.S. А не хотите сделать к эмулятору довесок - в виде примитивного редактора текста программы на Бейсике - для подобной выгрузки/загрузки в один файл и чтоб еще при этом псевдографика не терялась?

P.P.S. При работе эмулятора наблюдается глюк - перестает работать Alt-Tab - между приложениями приходится переключаться только мышкой.

Автор:  gid [ 31 авг 2016, 15:17 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

SerGun писал(а):
P.S. А не хотите сделать к эмулятору довесок - в виде примитивного редактора текста программы на Бейсике - для подобной выгрузки/загрузки в один файл и чтоб еще при этом псевдографика не терялась?

Не хочу. Но могу, как только появится больше свободного времени, доработать и приложить к эмулятору почти универсальный конвертер текстов из БКшных кодировок в читабельные на Win, чтобы он автоматом склеивал .asc файлы и конвертировал в один txt. Потому что у БК10 свой КОИ8, нестандартный, а у БК11(М) другой свой, несовместимый с БК10 и опять же нестандартный в части псевдографики.
Сейчас этот конвертер в виде исходников прилагается к исходникам эмулятора.
SerGun писал(а):
P.P.S. При работе эмулятора наблюдается глюк - перестает работать Alt-Tab - между приложениями приходится переключаться только мышкой.

Это не глюк, это фича. Alt-Tab - это совершенно нормальное сочетание БКшных клавиш АР2-ТАБ, поэтому оно перехватывается эмулятором и обрабатывается как БКшное сочетание клавиш, а не как виндозный хоткей.

Автор:  gid [ 29 ноя 2016, 13:06 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

gid писал(а):
Но могу, как только появится больше свободного времени, доработать и приложить к эмулятору почти универсальный конвертер текстов из БКшных кодировок в читабельные на Win, чтобы он автоматом склеивал .asc файлы и конвертировал в один txt.

Не прошло и года, а я таки сделал эту штуку. В комплекте с эмулятором в директории Tools прилагается утилита ITCPC, которая конвертирует файлы из БКшных форматов в Win и обратно. Заодно она и склеивает кучу мелких ASC файлов в один, и может делать обратную операцию. Для работы программы требуется vc 2015 redist соответствующей разрядности.

Автор:  Singular [ 10 апр 2017, 12:44 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Здравствуйте ;) Вы зря так небрежно относитесь к советам этого пользователя "peg" Кажется это Женя :) Вы разве не знакомы с ним?)) Это же реально весомый человек, в 90е они с бкшным железом творили такие чудеса, что ни у кого такого не было, плюс они первые, кто рискнул сделать принца персии на бкшке, единственная сложнейшая игрушка с IBM на бк, он хрень не посоветует, там же мозг внеземной силы)) Я ни в коем случае не умаляю ваши заслуги, вы стараетесь и делаете все возможное тоже обладая огромным талантом и знаниями, но мне показалось вы чуть не поссорились) хотя с таким человеком, вы просто обязаны найти общий язык и пару слов добавлю насчёт эмулятора, интересно что вообще никаким образом в этом эмуле нереально сделать плавный скролинг? А то даже при заставке андоса строка так дергается, что противно смотреть и хочеться выключить, на бкшке такого нет, я понимаю я читал что надо делать новый эмулятор,чтоб решить эту проблему, но неужели в этом и правда ничего нельзя уже изменить? Ведь в других эмуляторах, например в спектрумовском с этим делом все отлично.

Автор:  gid [ 11 апр 2017, 09:44 ]
Заголовок сообщения:  Re: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Здравствуйте.
Singular писал(а):
Вы зря так небрежно относитесь к советам этого пользователя "peg" Кажется это Женя :) Вы разве не знакомы с ним?))

Не небрежно. И не знаком, я вообще ни с кем не знаком, т.к. в своей глухой провинции варился в собственном соку, имел софт/игры, которые сам написал, купил/обменял на кассете для БК10, ещё когда они продавались, позже - купил на дискете в фирме СНЕК, всё. Я дремучий и необразованный человек.
А с peg'ом мы смотрим на проблему с разных сторон, видим разное, и решение видим разное. Его решение меня не удовлетворило. Я решил проблему так, как я представлял.
Где-то, не помню где, я писал, что я открыт для любой критики и любых предложений. Но далеко не любое предложение будет принято и применено. Если я чего-то не делаю, значит я этого не умею, только и всего.
Singular писал(а):
интересно что вообще никаким образом в этом эмуле нереально сделать плавный скролинг?

Для плавного скроллинга, и вообще всего движения на экране, нужно синхронизировать вывод на экран с частотой кадров монитора.
Нужно создать хитрую систему, которая будет конвертировать БКшные 50к/с в писишные, допустим, 60к/с, и при этом эффекты, завязанные на таймер, продолжали работать. Я без понятия, как это сделать. Разве что, как полумера, в полноэкранном режиме включить вертикальную синхронизацию.
Singular писал(а):
А то даже при заставке андоса строка так дергается,

Замечено, что при использовании рендера DrawDib, картинка на Win8, Win10 вообще сильно дёргается, там лучше использовать Direct2D.
Singular писал(а):
на бкшке такого нет

Бкшка выводит аналоговый сигнал на аналоговое устройство. Там нет проблем с дискретизацией.
Singular писал(а):
но неужели в этом и правда ничего нельзя уже изменить

Не знаю, если кто-то найдёт решение и поделится им - применим его в эмуляторе.

Страница 4 из 8 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/