- Эмулятор БК на Java, о необходимости которого так много говорил Брухис ...
-
? Александр Тишин (Sandro)@ - 20.01.2010 03:02
... достиг уровня альфа-версии.
¤
То есть, можно поиграть в некоторые игрушки :)
¤
Пока эмулируется только БК0010 с бейсиком. Есть EMT-перехват на чтение с магнитофона. Если кто-то хочет опробовать черновую версию, и не боится глюков, то скачать можно тут: http://depositfiles.com/files/c5utr39tr
¤
Системные требования: Java SE 1.6 или выше, Celeron333A или более быстрый процессор (оценка, не проверял именно на этом), экран 1200x800 или больше, желателен звук.
¤
Комментарии приветствуются :)
-
? anonymous - 20.01.2010 06:03
Побаловался, мило, но в жабе не разбираюсь, помощи предложить не могу, увы.
Порадовало соответствие знаков препинания клавиатуры, а то большинство всяких эмуляторов почему-то расчитывают, что у пользователя окажется английская раскладка и в них потом ничего найти нельзя, кроме как методом тыка, у меня японские клавиатуры используются, и, как видите, расположение знаков пунктуации и прочих символов на них соответствует БКшному http://qbus.narod.ru/jp106.jpg :)
-
? Александр Тишин (Sandro)@ - 21.01.2010 01:22
Ну, в области жабы я пока и сам справляюсь. :) Основная проблема сейчас с ошибками эмуляции процессора.
Как выяснилось, тест 791401 проверяет далеко не все команды. В частности, он не заметил кривое формирование флагов в CMPB.
Раскладка же такая вышла в результате попыток примирить раскладку qwerty c БК-шной логикой переключения РУС/ЛАТ, ну и верхнего регистра, конечно. Забавно, что совпала. :) Возможно, это не окончательный вариант.
-
? anonymous - 21.01.2010 03:10
Есть еще тесты процессора в комплекте XXDP, http://pdp-11.org.ru/files.pl
-
? crabable@ - 22.01.2010 16:10
Огромное спасибо за эмулятор!
-
? Александр Тишин (Sandro)@ - 01.02.2010 03:56
Пожалуйста :)
Новости: заборол ошибки в эмуляции процессора, теперь работает практически всё, что проверял. Единственное исключение - PLANE, но она у меня и на реале глючила. Заодно сделал эмуляцию джойстика на нумпаде ("стандартная" распайка от SW corp) и EMT-перехват на запись. Ну и "серые" клавиши добавил.
Так что теперь можно играть/работать практически как на настоящей БК-0010.01 с магнитофоном :)
¤
Скачать можно тут: http://depositfiles.com/files/9moo3wim3
¤
Сообщения об ошибках приветствуются :)
-
? crabable@ - 02.02.2010 15:06
Александр, а можно как-то сделать в эмуляторе ремаппинг клавиатуры, чтобы она соответствовала раскладке PC?
-
? anonymous - 02.02.2010 15:27
Да, и поскольку и на PC у всех разные раскладки, то ее выделить в техтовый файл настроек надо.
-
? crabable@ - 02.02.2010 21:39
То есть в обозримом будущем можно этого ожидать?
-
? Александр Тишин (Sandro)@ - 02.02.2010 23:47
Сделать можно, но я пока плохо представляю себе, как её задавать (особенно для случая верхнего регистра). Пока единственное, что пришло в голову, это вот такой вариант:
pc_key = bk_key[/bk_shifted_key]
Ну и всё это будет в текстовом файле keyboard.cfg.
Так годится?
-
? anonymous - 03.02.2010 00:27
а pc_key как код символа или скан-код? Если второе, то тогда для самой клавиши и для комбинации с шифтом отдельно надо задавать, а как быть с альт(АР2) и контрол(СУ) БКшными, которые код не выдают, но модифицируют, им как назначение делать?
-
? Александр Тишин (Sandro)@ - 03.02.2010 01:47
Символическое имя. До ява-программы доходят такие как бы псевдосканкоды, которые нигде, кроме как в документации на неё, не описаны :)
¤
Т.е. как-то так:
"A" = "A"
"[" = "["/"{"
F1 = POVT #не хочу делать кириллические имена, ибо кодировки ...
F2 = KT
LSuper = RUS
¤
Ну и так далее.
¤
Для модификаторов я хочу пока оставить жёсткие назначения, это упрощает.
-
? crabable@ - 03.02.2010 09:48
Александр, ещё вопрос... При переключении режимов экрана по Scroll Lock получается три режима. 1 - стандартный чёрно-белый, 2 - стандартный цветной, а посередине между ними ещё один режим, я его смог обозвать "сглаженный чёрно-белый". Это изначально такая задумка была или просто в процессе эмуляции так получилось?
-
? anonymous - 03.02.2010 14:56
Это же родные три режима БКшки, 512х256 2 градации яркости, 256х256 4 градации яркости и 256х256 4 цвета....
-
? crabable@ - 04.02.2010 15:30
Да, но в БКшке 2 родных режима: 512*256 - монохром и 256*256 - 4 цвета.
-
? anonymous - 04.02.2010 15:59
Ошибаетесь. Читайте про 1, 3 и 5 контакты разъема XT9.
-
? Александр Тишин (Sandro)@ - 04.05.2010 02:44
Суровый год выдался, не так уж и много времени удалось потратить на эмулятор :(
В общем, в честь моего дня рождения выкладываю версию 0.2 :*)
Есть переназначение клавиш :) Пока экспериментальное, правда.. в общем, ужасайтесь :E
Ещё сделал контроллер FDD, пока только на чтение. Зато работает диск+Бейсик.
Ну и мелочи: CapsLock, скриншот по F12, выход из эмулятора по Pause/Break
Особая просьба anonymous: проверьте пожалуйста, удаётся ли настроить дополнительные кнопки на японской клавиатуре? Кое-что пришлось делать по догадкам, документация тут не очень внятная.
Скачивать тут: http://depositfiles.com/files/izyp8adm4
-
? anonymous - 04.05.2010 11:10
Клавиши @`(код 34) :*(код 48) ^~(код 21) не работают, напротив, не воспринимаемые большинством программ ¥|(код 133) и \_(код 211) - работают.
-
? anonymous - 04.05.2010 11:12
P.S. коды десятичные, номера из таблиц xmodmap
-
? anonymous - 04.05.2010 12:00
Нет, все заработало, я стандарт попутал, например AT пытался назвать COMMERCIAL и т.д. - все клавиши назначаются и работают.
-
? Александр Тишин (Sandro)@ - 04.05.2010 23:59
Спасибо!
В яве там каша между "виртуальными" сканкодами для клавиатур PC106, маковской и сановской. Частью общие, частью разные. Плюс совсем виртуальные клавиши типа быстрого ввода кандзи через Alt+буквы. Я в меру своих способностей попытался разделить виртуальные клавиши и настоящие :) т.к. передавать виртуальные в маппер эмулируемой машины нельзя -- будет мусор из-за того, что программа получит пачку из сообщений о нажатии виртуальных и реальных клавиш. Поэтому и боялся, что отрезал лишнего, и часть реальных кнопок работать не будет.
Все имена клавиш, которые знает маппер, пишутся в создаваемый при первом запуске keyboard.ini. Стоит добавить это в документацию?
-
? anonymous - 05.05.2010 00:47
Я понял, что все используемые там прописываются, когда запутался с описанием и переименовал файл - появился новый. Пункт, поясняющий механизм описания, конечно нужен.
-
? nzeemin - 13.05.2010 12:22
Александр Тишин, а в исходниках этот эмулятор планируется выложить?
-
? anonymous - 13.05.2010 13:43
Исходники есть в составе .jar-архива, файл в его корне src.zip, однако он требует пароля :)
-
? Александр Тишин (Sandro)@ - 13.05.2010 21:06
Официальный выпуск исходников планируется, когда будет нормально работать базовый функционал (0010/11M). Сейчас часть программных решений временные, они мне не нравятся.
Ну особые любители БК могут подобрать пароль Ж) Он известен БК-шникам ..
А что, есть какие-то технические вопросы по эмуляции? Я могу ответить, без проблем.
-
? nzeemin - 13.05.2010 21:58
По-моему, исходники либо открыты либо нет. А так что лежат но под паролем -- как-то это непонятно -- что автор этим хотел сказать.
-
? anonymous - 14.05.2010 00:05
Вы так и не обосновали, зачем они вам. Нужны ли вам действительно внутренности проекта, если вы даже не поинтересовались содержимым контейнера? Автор пояснил вам, что доступ к ним ограничен, пока применены временные, не самые оптимальные, на его взгляд, решения, потому лучше, чтоб они не расползались пока в таком виде. На суд ощественности лучше вынести законченное с точки зрения автора изделие, тогда не будет изобретения велосипедов, т.е. модернизации кода сторонними лицами в тех же местах, на которые имеет виды и автор, а вот когда идеи у него иссякнут - сообщество придет на помощь. На "сыром" этапе разработки подключение большего числа разработчиков только усложнит работу автора, ведь помимо своих разработок, придется изучать и чужой код. Когда проект ведется в фоне, с трудом выкраивается время, это только застопорит процесс.
-
? nzeemin - 14.05.2010 00:28
Мне интересно как в данном случае автор подошёл к реализации эмуляции, и как это ложится на Джави.
Как показывает практика, количество желающих помочь написанием кода в таких случаях не сильно много. И уж тем более сомневаюсь в наличии людей, которые будут плодить дубли на основе этого кода. Хотя конечно хозяин -- барин. Что касается "законченности" 8-) то по моим ощущениям, эмулятор можно дописывать и исправлять до бесконечности.
-
? Александр Тишин (Sandro)@ - 14.05.2010 05:04
nzeemin, я действительно опасаюсь размножения недоделанных и кое-как запатченных версий, anonymous всё правильно написал. Эта беда случилась с многими эмуляторами.
Конечно, БК не самая популярная машина, шансов не так уж и много, но они есть. Поэтому я планирую выпустить исходники тогда, когда эмулятор не будет вызывать желания что-нибудь в нём _немедленно_ исправить или переделать. Архив с паролем -- это запаска на случай, если я по каким-то причинам не смогу продолжать работу над эмулятором -- ну или кому-то станет ОЧЕНЬ надо заняться им самому :) По моим представлениям, человек, одолевший запароленный архив, будет работать над эмулятором серьёзно.
Насчёт посмотреть -- если хотите, могу выслать пароль. Хотя вряд ли там найдётся что-то особо для вас интересное (это я сейчас сделал checkout BKBTL и бегло просмотрел -- многое сделано примерно так же). Кроме модели времени, может быть -- да и ту я собираюсь несколько переделать для большей универсальности.
Ну и чтоб два раза не вставать:
Готова версия 0.2a: диски теперь не только читаются, но и записываются; при запуске можно выбирать образы; исправлена ошибка в интеграторе звука (а я-то думал -- чего "клавесин" так хрипит?); применён другой способ построения картинки, по идее более быстрый. Хотя мне проверить не на чём :)
Качать тут: http://depositfiles.com/files/vgaykw2u6
PS: Как все уже догадались, следующим этапом запланирована 11М :)
-
? nzeemin - 22.05.2010 23:13
Александр Тишин, интересует в частности как у вас сделана тактировка команд, где брали информацию для по таймингам?
-
? Александр Тишин (Sandro)@ - 24.05.2010 00:10
Информация взята из эмулятора Брухиса, я сам не снимал времянки. Методика простая: эмулятор процессора считает свои циклы, остальные блоки в момент обращения к ним "догоняют" своё время до времени процессора. Это заметно ускоряет эмуляцию по сравнению с "пинанием" всех блоков каждые несколько тактов.
Поскольку у меня поля команды декодируются последовательно по мере надобности, то для команд с доступом в память циклы добавляются за каждую фазу исполнения последовательно:
¤
// amount of cycles needed to calculate address and read single operand
final static int eaMemCycles[] = {0, 12, 12, 20, 12, 20, 20, 28};
// generates an effective address
// emulated CPU registers will be modified as the side effect
protected final short genEA(int mmode, boolean byteaccess) throws QBusError
{
int reg = mmode&7;
int mode = (mmode>>3)&7;
short ea = regs[reg]; cycles(eaMemCycles[mode]); switch (mode) {
case 0: // reg
return -1;
¤
case 1: //@ reg/(reg)
return ea;
¤
case 2://(reg)+
if (reg == PC || reg == SP)
{
ea &= ~1;
regs[reg] += 2;
}
else
regs[reg] += !byteaccess?2:1;
return ea;
¤
case 3: //@(reg)+
regs[reg] += 2;
return machine.readWord(ea);
¤
case 4: //-(reg) if (reg == PC || reg == SP)
{
ea = (short) ((regs[reg] -= 2) & ~1);
}
else
ea = (regs[reg] -= !byteaccess?2:1);
return ea;
¤
case 5: //@--(reg)
ea = (regs[reg] -= 2);
return machine.readWord(ea);
¤
case 6: //123456(reg)
ea = machine.readWord(regs[PC]);
regs[PC]+=2;
ea += regs[reg];
return ea;
¤
case 7: //@123456(reg)
ea = machine.readWord(regs[PC]);
regs[PC]+=2;
ea += regs[reg];
return machine.readWord(ea);
} return -1; // should not be reached
}
-
? nzeemin - 24.05.2010 11:02
В итоге я тоже у Брухиса взял тайминг. Но и источник нашёл, которым Брухис пользовался -- это описание Зальцмана из №1 1995 журнала "Персональный компьютер БК" -- там указано время выполнения команд для БК-0010, в микросекундах, умножаем на 3 и получаем такты.
-
? anonymous - 24.05.2010 16:18
Поищите тут на форуме, я из ОСТ на процессор растактовку еще приводил.
-
? nzeemin - 24.05.2010 16:46
anonymous, да, нашёл, спасибо: http://bk0010.org/forum/?id=3012&page=
Это практически то же что приведено у Вакуленко: http://vak.ru/doku.php/proj/bk/1801vm-series
Хотелось бы ещё сканы этого ОСТ, но я так понимаю что большего они и не дадут.
Жаль что далеко не все команды здесь отражены.
Сколько примерно в тактах занимает интервал t? Сравнивая с таймингами из журнала (я так понимаю, Зальцман получал их экспериментально), получаем что t находится в интервале от 5 до 8 тактов.
-
? nzeemin - 27.05.2010 23:44
Сделал простенький бенчмарк -- замер таймером пустого цикла из 200000(hex) итераций, затем замер таймером цикла с командой, получение разницы. Погонял на эмуляторе и реальном БК-0011М. При этом наблюдаю несколько странные вещи.
¤
Команды не требующие дополнительных обращений к памяти -- проверялось на командах NOP, CLC, BIT R0,R0 -- выполняются за 10.66 такта.
В принципе, пустой цикл -- это очень много команд SOB, поэтому это время у меня тоже есть, и получается что "SOB R0,метка" -- выполняется за 21.33 такта.
Вот эти трети такта меня и смущают.
¤
Скорость выполнения команд типа NOP по ОСТ 11 348.918-83 (на процессор) должна быть равна 8+t, где t (цитирую) "t - время между установкой сигналов DIN/DOUT и RPLY, последний стробируется тактовой в противофазе с процессором, потому время также привязано к тактам". Получается, что t равно то 2 то 3? т.е. иногда RPLY успевает установиться за два такта, а иногда нет.
Либо всё-таки у меня в логике ошибка.
-
? Александр Тишин (Sandro)@ - 28.05.2010 00:26
t, насколько я понимаю, это время доступа к памяти.
Если речь идёт об ОЗУ, то ВП1-36 работает так: на одну телевизионную строку длительностью 64мкс ровно у неё происходит 96 циклов доступа к памяти, из которых чётные (при нумерации с 0) достаются процессору, а нечётные -- видеоадаптеру (даже на полях видеосигнала). То есть, при частоте 3 МГЦ процессор может читать/писать данные только каждый 4 такт, строго. Поэтому у БК-0010 время исполнения всех команд из ОЗУ кратно 4 тактам, всегда.
В 11М процессор работает на 4МГЦ, а ВП1-36, естественно, всё так же на 3 (или 6, это как посмотреть :) ). Поэтому выходит, что процессор получает доступ в ОЗУ 1 раз в 5 1/3 такта. В среднем.
А поскольку даже простую команду он не может выполнить за 5 тактов, то получается исполнение за два цикла доступа к памяти, хотя реально из них используется только один -- для чтения команды.
-
? nzeemin - 01.06.2010 22:06
Александр Тишин, спасибо за обстоятельный ответ.
Получается, что большинство (или даже все) эмуляторы БК полагаются на некоторые "усреднённые" длительности команд, не учитывая все эти особенности.
-
? Александр Тишин (Sandro)@ - 07.06.2010 14:42
Всегда пожалуйста! (Кстати, я, конечно же, неправильно написал название. Она ВП1-37 все же :)
В, общем, да. Я не слышал, чтобы кто-нибудь пытался в точности воссоздать времянки ВМ1 в реальном окружении.
¤
Кстати, готова версия 0.3 эмулятора. С поддержкой 11М. Скачать можно тут: http://depositfiles.com/files/pcx1jmqnh
-
? nzeemin - 07.06.2010 15:13
Александр, можно таки пароль на сырцы? Мне всё более интересно как оно у вас устроено. Обещаю не плодить клонов.
-
? Александр Тишин (Sandro)@ - 07.06.2010 21:03
Однако, пропустил небольшую проблему с case sensitive операционками. Перезалил исправленную версию: http://depositfiles.com/files/wbq3z4bmo
¤
nzeemin, проверьте свой ящик на mail.ru
-
? Александр Тишин (Sandro)@ - 03.07.2010 23:13
Ну вот, дело дошло и до беты 0.4
Обновления: мультиколор, AY, Covox. Ещё имеется неотключаемый антифликер :D
¤
Скачать можно тут: http://depositfiles.com/files/7pubt3wie
¤
К сожалению, у меня нет точной информации, как выставлять мультиколор относительно таймеров (встроенного и 50 Гц). Поэтому есть просьба к владельцам реала 11М: запустить bk2010/files/multicol.bin на реале и сфотографировать _весь_ экран с большим разрешением (чтобы был виден каждый пиксель). И заодно проверить, мерцает ли где-то изображение, или нет.
¤
Буду очень благодарен.
-
? Александр Тишин (Sandro)@ - 03.07.2010 23:20
Ну что за дела, опять кривой архив залил :( Вот правильный: http://depositfiles.com/files/z519g0nsd
-
? Вольк - 04.07.2010 23:11
Лучше бы выложили исходники на http://code.google.com/hosting/, там и svn есть.
-
? Leo B.@ - 22.07.2010 11:36
Сколько я пропустил! Александр, можно мне подключиться к разработке (заодно и Яву поизучать)?
Если приписать к эмулятору функциональность Терака 8510 (это, в сущности, практически БК-0010, только без монитора в ПЗУ, но зато с загружаемым знакогенератором и возможностью перехвата обращений к стандартным консольным портам - т.е. можно иметь резидент, загруженный с диска в верхние адреса, и запускать типовой софт от PDP-11, указав ему 40 то ли 48 Кб памяти), то проект приобретет международную известность и полезность - это будет ПЕРВЫЙ эмулятор Терака в мире.
¤
Ну и, в конце концов, попробуем добиться работы CSIDOS-овских демок.
¤
И еще - я попробовал ГОВОРУН. По-моему, звук нужно чуть демпфировать, слишком дребезжаще получается.
-
? anonymous - 22.07.2010 15:39
Leo, а на терак еще что-либо нашлось с тех пор, как тут Т11 обсуждали? Документации я не нашел достаточной для того, чтоб воспроизвести машину, все, что на Т11 я смог собрать - макетку "стандартной" машинки по рекомендациям фирменного datasheeta, на проводках, однако :) http://qbus.narod.ru/044.jpg http://qbus.narod.ru/045.jpg
-
? nzeemin - 22.07.2010 15:45
Александр, переходите уже в открытую разработку. Не думаю что будут форки, а польза налицо. Например, svofski поглядывал в исходники BKBTL в ходе реализации БК в FPGA http://code.google.com/p/bk0010/
-
? Leo B.@ - 22.07.2010 20:02
anonymous, мне кажется, что документов на http://bitsavers.org/pdf/terak/ достаточно для эмулятора (кроме реализации ODT, разве что). Устройство эмулятора консоли более или менее описано. Код ПЗУ начального загрузчика есть, несколько образов дисков где-то у меня лежат.
-
? anonymous - 23.07.2010 00:08
Leo, но схем-то нету :(
-
? Leo B.@ - 23.07.2010 00:33
anonymous, на этот счет есть так называемый "принцип утки": If it looks like a duck, quacks like a duck, walks like a duck, tastes like a duck... it is a duck.
Так что если весь софт, который найдется, будет работать - этого будет достаточно.
-
? anonymous - 23.07.2010 00:39
Leo, мне интересно, как он был устроен, какие схемные решения и элементная база использовались.
-
? Leo B.@ - 23.07.2010 00:42
На http://bitsavers.org/pdf/terak/PCBs/ есть фотки плат - может быть, что-то можно разглядеть.
-
? anonymous - 23.07.2010 02:23
А функции 7220 у вас эмулируются?
-
? Leo B.@ - 23.07.2010 02:35
Число 7220 мне ни о чем не говорит, поэтому, наверное, нет. А что это?
-
? anonymous - 23.07.2010 02:50
На фотографии платы графики белая микросхема - это 2D процессор, он умеер рисовать примитивы и масштабировать изображение. http://qbus.narod.ru/nec_d7220.pdf
-
? Leo B.@ - 23.07.2010 03:26
Он нужен для знакогенератора, наложения текста на графику и скроллинга. Прямого доступа к нему в системе не было. Для эмуляции знакогенератора и скроллинга согласно системной документации - http://bitsavers.org/pdf/terak/terak.video.display.pdf - совсем не обязательно знать детали хардверной реализации.
-
? anonymous - 23.07.2010 03:37
Эти описания я читал, но они не дают представления о том, как сам контроллер был обустроен физически. И, соответственно, какие возможности можно было получить дополнительные, введя простейшие доработки на плате, сомневаюсь, что был хоть один пользователь, из числа знавших, что там есть 7220, который бы был доволен чисто программным способом построения изображений, имея "в тени" столь мощный инструмент.
-
? anonymous - 23.07.2010 03:44
Еще вопрос не по теме БК, но по эмуляторам и графике: а не встречался ли кому проект эмулятора КГД и КЦГД от ДВК?
-
? Leo B.@ - 23.07.2010 03:55
Догадки можно строить любые. Увидим софт, который пытается пользоваться чем-то недокументированным - будем думать крепче.
-
? nzeemin - 24.07.2010 01:01
> а не встречался ли кому проект эмулятора КГД и КЦГД от ДВК?
http://www.phantom.sannata.ru/forum/index.php?t=2367&a=stdforum_view&o=&st=60
borisfox: "Я находил как минимум пару отечественных эмуляторов, из которых один довольно неплохо эмулирует ДВК-3 с одноплатным вычислителем на некотором гипотетическом процессоре (нечто среднее между ВМ1 и ВМ2, но без EIS/FIS), с КМД, КСМ и КГД, и собственным драйвером жёсткого диска, не имеющим аналогов в реальных ДВК. Эти эмуляторы доступны в сети (откуда скачал, не помню уже), но, если нужно, могу выложить. Игры для КГД идут, но не в реальном масштабе времени (гораздо быстрее), и наблюдаются какие-то странные тормоза с клавиатурой, поэтому играть в них реально не получается. :-)"
"Вдогонку - один из упомянутых отечественных эмуляторов разработки Владимира Полетаева, второй - В.А.Овсиенко.
Второй с эмуляцией КГД, первый без, зато с EIS и с поддержкой встроенного обмена с хост-машиной (т.е. MS-DOS)."
-
? Александр Тишин (Sandro)@ - 24.07.2010 01:42
Лео, приветствую!
¤
Насчёт подключиться к разработке: для этого надо будет заселиться на какой-нибудь хостинг. Пока выбираю между github и bitbucket, планирую где-то в августе этим заняться. Правда, не знаю, будет ли это особо интересно -- в плане эмуляции БК из крупного остались разве что жёсткий диск и мышь; а так надо в основном баголовством заниматься. Ошибки, судя по всему, таки есть. А, ну ещё интерфейс и управление эмулятором, но это вообще нудятина :(
¤
Про Терак. Я ничего против изготовления эмуляторов других машин на основе моего эмулятора не имею, но хочу сохранить основной проект чистым (и максимально отполированным :):) ). Поэтому давайте всё же сделаем форк, пусть даже смешанный (БК+Терак).
¤
Про демки. На самом деле, большинство работает ... или почти работает. Проще перечислить очевидные ошибки:
¤
INSULT -- вылетает в 17, кажется, части (хотя ходит слух, что он там и на некоторых реальных машинах вылетал), кроме того в нём смещён мультиколор на большинстве экранов и косячит "снег" в одной из первых частей (или это не баг?).
Technological Dreams -- смещён мультискрин. Иногда (очень редко) виснет, неизвестно почему.
Disco Club -- вот тут полная беда. Запустите и всё поймёте.
¤
Оригинальная пьезокерамическая верещалка тоже не отличалась мягкостью звука :) Но вообще да, слух режет, если в наушниках. Фильтр звука у меня уже есть в рабочей версии, да и эмуляцию Ay-8910 уже исправил :) Кой-чего исправлю ещё и выложу.
¤
PS: вот нафлудили, пока меня не было :) Даже не дочитал ещё.
-
? Leo B.@ - 24.07.2010 05:56
Я могу создать git-репозиторий в sf.net/bk-terak-emu.
Если делать по-честному, то хорошо бы воспроизвести функциональность уже существующего эмулятора - чтобы работал без перехватов EMT, плюс умел сырые образы флоппи-дисков (с "защитой") и пр.
Делать ли для Терака специальный форк, можно решить по ходу дела.
Если что-то работает в моем эмуляторе, и не работает в Вашем, то это будет легко поправить, как только у меня будет доступ к исходникам. А если и в моем не работает, то беда.
-
? Александр Тишин (Sandro)@ - 24.07.2010 17:46
sf.net не годится -- по правилам, они не принимают проектов с закрытым исходным кодом.
Что же касается EMT-перехвата, то я не вижу смысла в отказе от него. Зачем ждать лишнее время, если результат тот же? В любом случае, программы со своей внутренней читалкой с ленты как правило используют вообще нестандартный формат, конвертор .bin -> звук тут не поможет. Всё равно придётся грузить из .wav или ленточного формата (1).
Что же касается "сырых" образов, то они бывают разные. Если речь идёт о просто пословном дампе дорожки с атрибутами "маркер", то это давно уже есть. Надо только написать монтирование этих образов, работы на час вместе с правкой интерфейса. Я не сделал этого только потому, что мне такие образы не попадались, и вообще ничего о них не известно.
Если же речь идёт о полной эмуляции структуры дорожки на низком уровне (до деманипулятора) ... то, опять же, неясно для чего это нужно. Разве для БК есть программы, которым важны такие тонкости?
(1) Кстати, кое-какие мысли по простому универсальному ленточному формату со сжатием у меня есть. Надо, конечно, ещё изучить аналоги, но вроде бы получается неплохо.
-
? Leo B.@ - 24.07.2010 23:16
sf.net предлагался на случай, если код будет решено открыть. :)
Иметь возможность работы с оригинальным EMT из bin-файла хорошо для демонстрации автозапуска, а для программ с внутренней читалкой, конечно, нужна и работа с .wav. Ленточный формат забавен, но вряд ли нужен - место на диске нынче дешево.
Под сырым образом диска я имел в виду дамп дорожки с маркерами. Ниже этого уровня, вроде бы, спуститься было нельзя.
¤
Disco Club ведет себя очень странно. А под моим эмулятором - работает (правда, что случилось со звуком в SDL за последние годы, я не понимаю: раньше все звучало как надо, а сейчас - полная каша).
-
? Александр Тишин (Sandro)@ - 25.07.2010 19:44
Открытие планируется, но позже :)
В принципе, никаких особых проблем с эмуляцией автозапуска нет, большинство программ уже и так автозапускаются. Единственное, надо бы для всяких хитрецов поточнее (ре)конструировать стек и регистры. Сейчас он повыше, чем надо (не отрабатывается вход в п/п чтения массива), а регистры другие вообще.
Если хранить много лент, то специальный формат просто необходим. 90-минутная кассета в оцифрованном виде занимает примерно 260МБ -- многовато, на мой вкус. Другое дело, что сейчас это может быть и не нужно.
Более низкий уровень хоть и не доступен впрямую, но создаёт наблюдаемые эффекты на стыках в начале/конце записи, т.к. там нарушается структура MFM кода. В результате при непрерывном чтении получается сдвиг на несколько бит плюс возможное искажение потока (при "проскоке" кода на пол-символа). Это позволяет, как минимум, отличить многократно прописанную дорожку от записанной в один проход, как при форматировании. А с подсчётом вероятности и величины проскока -- можно было идентифицировать диск. На PC этим пользовались, а вот насчёт БК -- не знаю.
Disco Club я с набегу не осилил, увы. Трасса выглядит вроде бы нормально, а на экране такой вот ужас.
-
? Александр Тишин (Sandro)@ - 31.07.2010 17:39
Ну, в общем, кое-как я разместился на bitbucket. http://bitbucket.org/alex_tishin/bk2010_releases/downloads
Заодно выпускаю припоздавшую версию 0.4: починен AY, есть аудиофильтр и ещё небольшой сюрприз :)
Теперь сборки будут выкладываться без образов дисков и софта, место на бесплатном аккаунте не резиновое. Ну да вы все знаете, где этот софт искать :):)
-
? Manwe - 03.09.2010 03:23
Офигительный проект! Только разрешение экрана бы поменьше, а то на ноутбуке не умещается.
-
? anonymous - 03.09.2010 09:14
Так вот, кто злодействует! :) То-то я смотрю столько немасштабируемых сайтов в сети и программ, для которых надо лупу от телевизора КВН ставить перед монитором, чтоб что-то прочесть... Или иметь для них третий монитор со специально низким разрешением...
Manwe, не надо поменьше, надо с регулируемым или переключаемым на стандартные значения. Если сделать окно 1:1 с БК, 512х256, то многим потребуется лупа, чтоб увидеть там что-либо.
-
? Manwe - 03.09.2010 09:36
Конечно, лучше переключаемые разрешения. И ещё сохранение параметров, чтобы при запуске каждый раз заново не выбирать Covox/AY, диски и прочее (у меня на Макинтоше параметры не сохраняются, не знаю как у других).
-
? anonymous - 03.09.2010 09:52
Так нету сохранения наверное, кроме раскладки клавиатуры, он никаких файлов настроек не имеет. В последней версии src.zip не вложен, не посмотреть, есть ли оно там, спрашивайте автора.
-
? Александр Тишин (Sandro)@ - 03.09.2010 22:09
Manwe, спасибо!
А какое разрешение у экрана ноутбука? По идее, в 1440*800 должно влезать, хоть и впритык. Но вообще, конечно, выбор разрешения нужен. И будет сделан.
Тем более, что для версии 0.5 я как раз запланировал улучшение пользовательского интерфейса -- сохранение настроек, смена образов дисков во время работы эмулятора, ещё кой-какие мелочи. Предложения принимаются :)
-
? Manwe - 03.09.2010 23:09
1280x800, но поскольку это Mac OS X, то там и сверху менюшка, и снизу док - в общем, места мало. Можно было бы сделать fullscreen mode, когда на экране 1280x800 выделяется область 1024x768 и в ней всё отрисовывается...
Отдельно хочу сердечно поблпгодарить Sandro за работу - ждём новых версий!
-
? Александр... - 16.09.2010 03:24
Если нужен хостинг, то свистите, дам бесплатно практически неограниченно. Могу поднять и git и svn, если надо. bk.pictures2.com хостится мной и давно. :)
Пишите на мыл alexn74 собак гмыл
-
? Александр Тишин (Sandro)@ - 21.09.2010 01:46
Спасибо за предложение, пока проблем с хостингом нет, bitbucket мне хватает.
Вот если бы продолжили работу по поднятию нормального сайта с каталогом ПО для БК, как спектрумисты соорудили свой World of Spectrum ... А то сейчас полный ужас, если что и есть, то обычно в неотсортированных файлопомойках.
У вас на сайте, как я вижу, образы выложены в нормальном виде -- с комментариями о содержимом, со списком программ. Запихать бы это в базу данных, сделать бы к этому ещё список _файлов_ в каждом образе, отдельно показ по программам и файлам -- на каких образах встречается, версии. Получился бы единственный нормальный каталог БК-шного софта. А там и добавлять будем, чего нету. :)
¤
PS: Хотя, можно было бы выкладывать сборки эмулятора вместе с проверенным софтом -- на bitbucket этого не выйдет, он же для сорцов ...
PPS: Опробовал уменьшенные видеорежимы: 720x576, 512x384 и даже 256x192. С билинейной интерполяцией выглядят весьма прилично, хотя выглядит немного размыто, и однопиксельные вертикальные скроллы мерцают, увы :(
Из плюсов: в 256x192 почти нормально читается текст 64 символа в строке. И вообще жить можно, хотя картинка как на 10" мониторе. А вот 320x240 -- не годится. Никак.
PPPS: Кому-нибудь нужно разрешение выше 1024x768? Если да, то какое?
-
? Александр... - 21.09.2010 02:16
Да не за что. Архив был создан Савельевым, моей заслуги в этом нет. Сделать нормальный отсортированный архив - это хорошая идея. Но для этого нужно кооперироваться с людьми, у которых эти архивы есть. Поставить какой-то CMS для все этого - вопрос вторичный. И потом, где собственно хозяин bk0010.org? Владимир? Мне кажется логичным архив организовать тут...
-
? Александр Тишин (Sandro)@ - 21.09.2010 02:29
Ну, несколько крупных архивов (в частности, архив одного из клубов) доступны в сети, я и сам себе скачал, что мог. Думаю, для начала вполне должно хватить. А там и скооперироваться можно.
Сам я, увы, в организации сайтов не шарю, мои знания ограничиваются основами HTML. Я железом занимаюсь :)
-
? Александр... - 21.09.2010 02:38
Ok. Давайте подождем, что скажет командир bk0010.org сначала.
-
? Manwe - 21.09.2010 09:30
А нельзя сделать изображение без интерполяции? Нарочито крупными пикселями. По-моему, так аутентичней и глаза меньше напрягает. В режиме (или в окне) 1024x768 каждый пиксель БК переходит в спрайтик размером ровно 4x3 - всё аккуратно и никакая интерполяция не нужна.
-
? Макс Багаев@ - 21.09.2010 12:22
касаемо хостинга - традиционно предлагаю место на http://pdp-11.ru
можно поддомены и никаких проблем
¤
на счет архива - самый полный http://pdp-11.ru/mybk/img_2010-09-19.rar
вопрос на счет сортировки очень серьезный тк требует много времений, с которым увы туго.
¤
Cо своей стороны могу обеспечить все условия для размещения сайта (вплоть до отдельной железки с любым софтом)
¤
ps: http://pdp-11.ru/java/bk2010-0.4-release.zip
-
? Вольк - 21.09.2010 12:32
Всё присылаемое я без проблем выложу здесь, сейчас проблем с хостингом нет. В данный момент разрабатываю интересную CMS, новая версия сайта будет на ней, и там уже будет гораздо больше того, чем есть сейчас.
-
? Александр Тишин (Sandro)@ - 22.09.2010 02:12
Manwe, а что -- сейчас с интерполяцией на маке показывается? Я её не запрашиваю, под виндой/линуксом так и есть кирпичи 4x3.
-
? Manwe - 22.09.2010 10:23
не, на Маке нормально - без интерполяции. Я про то, что она не нужна. А то испугался, что и в высокие разрешения её добавишь.
-
? Александр Тишин (Sandro)@ - 22.09.2010 23:38
Нет, ни в коем случае. Я сторонник максимальной аутентичности. Поэтому даже в случае, когда я делаю для удобства опцию, в реале невозможную (Smart Covox, например), то оставляю возможность включить "как в оригинале" :)
Кстати, возможно, что придётся делать интерполяцию руками. Чтобы везде работало. Дело в том, что включение интерполяции -- это всего лишь hint для оконного менеджера, он имеет право этот намёк игнорировать.
-
? Александр Тишин (Sandro)@ - 11.10.2010 05:42
В честь круглой даты (а что, 10.10.10 не каждый день бывает :) ) выпускается версия 0.5, качать здесь: http://bitbucket.org/alex_tishin/bk2010_releases/downloads
¤
К сожалению, сделано меньше, чем хотелось бы, но выпуск новой версии и так затянулся. Из существенного: выбор разрешения экрана, сохранение настроек, чтение с ленты. Исправлены ошибки, в том числе и одна очень серьёзная, ломавшая часть самарских демок (спасибо Брухису!).
¤
Серые пункты в меню пытаться включать не надо, всё равно не заработает :)
¤
Из неприятного: при нецелом масштабировании и отключенной интерполяции обнаружились очень странные искажения картинки. Так что советую либо выбирать 1024x768, либо включать интерполяцию. Полноэкранный режим пока не осилил, он достаточно сильно отличается по функционированию от обычного.
Из приятного: теперь можно читать с ленты файлы, записанные в самом эмуляторе. Правда, турбокопировщики пока не пробовал :) И да, теперь для смены дисков не надо перезапускать эмулятор :)
Пожелания, как всегда, приветствуются.
-
? Manwe - 11.10.2010 11:57
Ура, товарищи!
Огромная благодарность Александру.
Теперь будем ждать синхронизации скорости выполнения команд с реальными тактами БК :) Благо, программка есть и жалеющие потестировать на реальном железе уже объявились.
-
? Adam Bazaroff@ - 12.12.2010 17:41
OMFG!!! Я и не верил, что на Маке смогу увидеть родимую БКшку. Спасибо!!
Правда к моему стыду я почти всё забыл... Пойду вспоминать! Еще раз спасибо и требую продолжения банкета! :)
-
? Adam Bazaroff@ - 12.12.2010 18:21
Хорошо бы вынести в меню смену имиджей. На маке ctrl+F4 идр. использованы под системные нужды и не срабатывают. Приходится «ребутать» эмулятор.
-
? Александр Тишин (Sandro)@ - 17.12.2010 05:59
Спасибо на добром слове :)
Продолжение будет, пока сделано ещё даже не всё, что должно быть сделано в первую очередь. Это до сих пор очень скелетообразный вариант эмулятора.
С меню дело такое. Пока своего меню у меня нет (а, кстати, куда его вешать? F11? Он везде свободен?). Встраиваться в то меню, что по иконке в левом верхнем углу -- дело платформозависимое. Его может вообще не быть. Надо что-то изобретать, пока думаю. Буду благодарен за советы.
Ещё можно было бы обсудить тему оптимальной раскладки в эмуляторе БК. Пока что её поднимал только Брухис как-то раз, но никто тогда не откликнулся. Включая меня, да. :(
-
? Adam Bazaroff@ - 18.12.2010 21:45
F11 на Mac'e занято. F1-F7 и F13 свободны. А вообще меню достаточно обычное, в менюбар. File, Edit, View... Насчет раскладки, моё ИМХО — она должна быть опциональной и настраиваемой.
PS. CSIDOS работает нестабильно, программы запускаются через одну. Возможно на pdp-11.ru битый образ конечно, но что-то уж слишком подозрительно — остальные работают нормально. Так же так и не удалось запустить БК10+Бейсик. На экране окно с красным перекрестием и всё.
-
? Александр Тишин (Sandro)@ - 18.12.2010 22:16
Понятно. Сейчас настраивается только клавиатура БК, но не управляющие клавиши. Менюбар мне не не нравится по 3 причинам: замусоривается экран, отъедается место, и его некуда девать в полноэкранном режиме. Всплывающее окно как-то поудобнее.
Если крест, то с вероятностью 99% это означает, что не удалось загрузить ПЗУ. basic10.rom, monit10.rom точно на своих местах лежат? Версия эмулятора точно 0.5?
С Самарскими программами и у меня такая же ерунда, надо копать.
-
? Adam Bazaroff@ - 18.12.2010 22:49
Вот папка с ромами. https://img.skitch.com/20101218-1jqa4wadu7qhq56quxqp1ebsdp.jpg
Версия последняя. Насчет менюбара. Всё-таки это стандарт... Я за них. Не думаю, что можно придумать что-то более удобное и, главное, ПРИВЫЧНОЕ. Когда эмулятор пойдет в народ (а олдскул всё «моднее и моднее»), возникнут множество вопросов как, куда и чего запускать. Нужно облегчить жизнь незнакомым с БК людям... Да чего греха таить? Я сам не сразу вспомнил что и как.
-
? Александр Тишин (Sandro)@ - 18.12.2010 22:58
С виду всё нормально ... А если запустить в консольном режиме, то что в консоль пишется?
Вот в эмуляторах как раз не стандарт, менюбар "вклинивается" в изображение и отвлекает на себя внимание. За примерами далеко ходить не надо: такие сверхпопулярные эмуляторы, как MAME и DosBox менюбаров не имеют!
-
? Leo B.@ - 18.12.2010 23:09
Ошибку с самарскими программами, связанную с байтовым обращением к регистру палитры, я нашел путем трассировки прерываний на двух эмуляторах - моем и Александра - и втыканием в различия. Сейчас я временно лишен машины с линуксом, поэтому повторить это не смогу, но тип ошибки, видимо, примерно тот же - эмулятор "слишком строг".
-
? agk@ - 17.01.2011 16:59
Здравствуйте! Огромное спасибо за эмулятор! Но...
Вepositfiles говорит, что такого файла не существует.
А ооочень бы хотелось.
-
? anonymous - 17.01.2011 17:51
agk, вы куда смотрите? при чем тут Вepositfiles? С bitbucket берите.
-
? Александр... - 01.07.2011 02:59
Так что с Java эмулятором? В какой стадии?
-
? Александр Тишин (Sandro)@ - 01.07.2011 21:21
Увы, я сейчас оказался на двух работах сразу, так что времени на эмулятор почти нет :(
Но проект ни в коем случае не заброшен и будет развиваться.
-
? Александр... - 04.07.2011 10:20
Понятно. Исходники, я так понял, в Open Source вы не релизнули?
-
? Роман - 19.07.2011 15:08
Неужели такая идея и ее реализация канут в небытие?
Очень хотелось бы поиграться с более гибко настроенной системой (если возможно, то было бы здорово не жесткое закрепление разрешения, а с возможностью изменений за край окна)
Так же интересен вариант для сотовых телефонов - ведь яву поддерживают большинство "средних" моделей, правда пока не соображу как быть с тачскринами.
¤
Может автор все-таки выложит исходники? Думаю, что их достаточно быстро начнут оптимизировать. И получится как здесь :) : http://ithappens.ru/story/6263
-
? Александр... - 24.07.2011 12:12
2Вольк: А, кстати, где обещанная новая CMS? :P Архив файлов у нас так и не образовался за год. Жаль.
-
? Вольк - 24.07.2011 21:10
Александр, пока её писал поменялись идеи и планы, так что теперь пишу другую вещь (на Erlang), но всё будет, этот сайт будет одним из первых, на котором будет установлено, правда не знаю теперь когда, приходится ещё и на жизнь зарабатывать.
¤
Появилась идея создать эмулятор БК на JavaScript (это не Java), чтобы работало во всех браузерах, поддерживающих HTML5. Программы можно будет запускать прямо с сайта, не нужно ничего скачивать и устанавливать.
-
? Александр... - 26.07.2011 00:25
Я знаю, что такое Javascript. Успехов с этим. К сожалению, придется бороться с таймером JS, чтобы сделать тайминг реалистичным. Может, все-таки CMS прикрутить уже готовый без заморочек с Erlang'ом. Я понимаю, что времени мало и есть желание поиграться с технологиями, но тут колесо изобретать не надо ИМО.
-
? Вольк - 27.07.2011 22:06
Александр, хорошо что знаете, а то обычно бывает путаница. Бороться с таймером не нужно, нужно его использовать :)
Готовую CMS не хочу прикручивать, обычно они все тормозные и у большинства код плохой, дырявый. Может как раз лучше начать с эмулятора, напрячься, сеть и написать за недельку, а там и сайт вокруг него создать, а то сейчас здесь только форум имеет хоть какую-то ценность.
-
? Александр... - 28.07.2011 02:23
К сожалению, таймер работает по-разному в разных браузерах. Гарантированой точности нет. У IE до сих пор пишут про 16мс разрешение. Вроде как у Firefox и Chrome стало уже сильно с таймером. Но все это познается на практике. За неделю... Это по-моему слишком оптимистично. Если нужна какая практическая помощь, то свистите.
-
? Александр... - 28.07.2011 02:25
Хотя вот посмотрел на JSSpeccy... Вроде работает. :)
-
? tim - 08.09.2011 10:14
Пытался запустить эмулятор на symbian 9.4, не получилось. А неплохо было бы заиметь БК-шку на смартфоне с полноценной клавой :)
-
? tim - 08.09.2011 11:07
Пишет: "Невозможно установить приложение. Установочные файлы повреждены", и в инфо: "Отсутствует обязательный атрибут "MIDlet-Name" " Можно это как-то поправить? Я так понимаю нужно видоизменить файл MANIFEST.MF ??
-
? Александр Тишин (Sandro)@ - 11.09.2011 06:51
Не думаю, что это поможет. Эмулятор написан для использования в среде Java SE (Standard Edition), а у вас, судя по инфо, машинка поддерживает только Java ME (Mobile Edition).
-
? tim - 26.09.2011 06:42
Обидно, а это уже никак не поправить ?
-
? xmen - 15.10.2011 00:34
Александр! Спасибо за ваш труд!
А как насчет того, чтобы откомпилировать эмулятор в виде апплета? Вероятно предется пожертвовать функциями записи на диск, из-за браузерных ограничений безопасности. Но дело того стоит, ведь если эмулятор можно будет опробовать прямо в браузере, это здорово добавит ему популярности!
-
? Александр... - 25.10.2011 03:43
В браузере надо запускать Жабускрипт, а не Жабу. :)
-
? emil1977 - 27.10.2011 12:34
Хорошо бы эмулятор бк-0010 на смартфоне уже сделать, благо мощности процов там уже вполне хватает.
-
? Александр... - 28.10.2011 03:41
Так есть под WM 6.5 :)
-
? xmen - 27.07.2012 17:19
Найдена существенная недорабока в реализации регистра состояния клавиатуры (177660).
При поступлении в регистр данных клавиатуры нового кода, регистр состояния клавиатуры должен выставлять в 1 свой 7-й разряд. В эмуляторе этого не происходит! В результате чего некоторые программы БК элементарно подвисают на вполне безобидном коде, таком как:
M1: TST 177660 ; ожидание нажатия клавиши
BEQ M1 ; продолжается до бесконечности...
Просьба к автору исправить баг в следующем релизе!
-
? Александр Тишин (Sandro)@ - 27.07.2012 17:54
Всё там устанавливается. Прерывания не пробовали запрещать? Стандартный обработчик читает код клавиши из 177662, из-за чего флаг сбрасывается.
-
? anonymous - 28.07.2012 00:52
Приведенный xmen код и будет вечно на месте крутиться, т.к. он проверяет 15й, а не 7й бит, а 7й проверяется инструкцией TSTB.
-
? anonymous - 28.07.2012 00:55
Ox, не обратил внимания, что там не классическое BPL/BMI для такой конструкции, а BEQ у него. Тогда да, сперва следует запретить прерывания, либо установив 6 бит в CSR клавиатуры, либо приоритетом процессора.
-
? Андрей - 28.07.2012 08:54
Проблемы с CSIDOS'ом, не запускается эмуляция БК0010(-01), командой BK10 из CSIDOS'а (происходит перезагрузка).
-
? gid - 28.07.2012 16:08
Ну, раз уж поднялась тема, тоже отпишусь по недостаткам.
CPUTEST4 Савельева не работает, вылетает на команде STEP (опкод 017), при выполнении содержимое SP нечётное, видимо причина в некорректной обработке нечётного указателя стека. Т.к. вероятно, STEP, как и в большинстве эмуляторов не пытается ничего читать из 0177674,0177676, а сразу честно делает прерывание по вектору 4.
Если эту проверку отключить, тест затыкается на check #04 - JSR/JMP REG, видимо вместо выполнения прерывания по вектору 4 делается попытка перехода куда-то.
Если и эту проверку отключить, то уже не помню, то ли просто зависает, то ли просто вылетает при расчёте тактовой частоты проца. Причина - некорректная обработка обращений к регистрам таймера по их нечётным адресам.
-
? Аноним - 30.07.2012 01:54
зачем это надо
-
? Аноним - 30.07.2012 01:54
зачем это надо
-
? Александр Тишин (Sandro)@ - 30.07.2012 02:22
Эмуляции HALT-режима и связанных с ним команд пока вообще нет. По причине отсутствия у меня вменяемой документации. Эмулируется только собственно опкод 0, с принудительным вылетом по 4 вектору. СТАРТ/ШАГ сейчас вылетают по invalid opcode, т.е 10.
Будет документация -- будет эмуляция :)
¤
PS: JMP/JSR reg отправляются по 4 вектору, сейчас специально проверил исходник.
-
? Андрей - 30.07.2012 07:28
Какая нужна информация? Поищу по сусекам, может найду что нужное! )
-
? gid - 30.07.2012 09:49
К сожалению не могу подтвердить пруфлинком, но 100% достоверная инфа, что на БК
опкоды 010-017 вызывают прерывание по вектору 4. Не важно, что из-за отсутствия доступа к ячейкам 0177674,0177676, важно, что в конце-концов результат - вектор 4, а не 010, т.к. функционал этих команд в 1801вм1 реализован.
А вектор 010 на 1801вм1 вызывают опкоды:
07 (MFPT),
020-077 (RD,URD,RDPC,PDPS,UWR,WRPC,WRPS,...),
0210-0237 (команды LSI-11),
06500-06677 (MFPI,MTPI),
07000-07777 (чьи-то команды),
070000-73777 (MUL,DIV,ASH,ASHC),
075000-076777 (FADD,FSUB,FMUL,FDIV, и прочие команды fis, cis),
0106500-0106677 (MFPD,MTPD),
0107000-0107777 (чьи-то команды)
0170000-0177777 (Команды расширенного набора команд арифметики с плавающей точкой, наверно для FPU)
подробнее о командах тут http://pdp-11.ru/mybk/doc/PDP11.TXT
---------------------------------
при тесте JMP/JSR reg в консоль циклически пишется #2066##2080##2080##2078##2072##2080##2080##2064##2078##2080##2080##2070##2080##2080##2080##2076##2080##2080##2068##2080##2080##2080##2074##2080##2080#
и в конце концов эмулятор меняет палитру, переводит экран в режим РП и зависает.
-
? gid - 30.07.2012 10:32
Забыл, я однажды по другому поводу и в другой ветке давал образ дискеты, на которой можно найти исходник теста Савельева с почти авторскими комментариями http://files.mail.ru/A10M7M Если возникнет желание улучшить/уточнить поведение эмулятора, он может немного помочь.
-
? Джон - 07.08.2012 15:22
А, возможно в эмулятор добавить выбор прошивки КНГМД из файлов *.rom или *.bin (326, Samara, Altpro, SMK и т.д.), ну и хотелось бы БК0011 без увидеть в работе.
-
? Александр Тишин (Sandro)@ - 22.08.2012 18:46
gid, спасибо, "будем посмотреть"
¤
Джон, мне не очень нравится идея выбирать _прошивку_ вручную, т.к. легко накосячить (выбрать SMK с прошивкой 326, например, и долго ругаться после этого на "глючный эмулятор"). Так что если и будет, то только в паре с соответствующим железом. Второе -- ну тут два вопроса: где взять прошивки и софт? Без них эмуляция железа полностью лишена смысла.
-
? Александр Тишин (Sandro)@ - 25.08.2012 14:11
Я тут наверное таки соберусь с духом, и выпущу 0.6, благо есть полезные фиксы (в частности, 100% точные палитры, спасибо Никите Зимину). Может, даже AY починю полностью :)
Но всё же объём сделанного невелик, так что хочется приделать какую-нибудь серьёзную фичу. Я вот думаю приделать HDD, но эпоху его применения в БК я не застал, на тот момент у меня была уже гораздо более мощная машина. Так что возникает вопрос: какие типы контроллеров имеет смысл эмулировать, и насколько полная документация по ним доступна? По соседним темам про SMK я понял так, что есть проблемы с пониманием его работы.
-
? gid - 25.08.2012 14:52
С пониманием работы СМК в плане работы с винчестером проблем нет никаких, ибо работа это чисто софтварная, как в прошивке написано, так и работает. Проблемы там с менеджером памяти, как воплотить в железо смк512, не имея на руках прошивки ПЗУ 556РТ4 для 512кб памяти.
Вся инфа по контроллеру доступна тут же, на форуме, в соответствующих разделах, эмулировать имеет смысл смк512, чтобы всё было по полной программе, а потом, если хочется полный набор младших контроллеров, просто отключать для них неиспользуемые биты кодов подключения страниц памяти.
Собственно БК использует только возможности интерфейса АТА, самые базовые. Так что с эмуляцией самого HDD проблем практически не будет.
-
? Александр Тишин (Sandro)@ - 25.08.2012 17:57
То есть, я правильно понимаю, что SMK -- это развитие A16 и иже с ним, так что при наличии эмуляции SMK их эмулировать просто нет смысла? Это во-первых. Во-вторых, да, я видел, что тут много инфы пробегало, но она какая-то разорванная, нет системы.
Можно вкратце, буквально в паре предложений описать, какой функционал вообще в нём есть, чтобы начать как-то ориентироваться в задаче?
-
? gid - 25.08.2012 23:04
НУ да, СМК это творчески переосмысленное развитие А16, т.к. режимы у них всё-таки немного друг от друга отличаются.
С точки зрения пользователя, эмуляции СМК512 вполне достаточно - с дисковода грузится, с винчестера тоже, с точки зрения полноты всяких эмулируемых устройств, скорее, лучше сэмулировать и А16М, и СМК512.
Из документации по СМК достаточно документа, который давал CD-Inc в http://bk0010.org/forum/?id=6749
чтобы не искать там его, вот ссылка http://narod.ru/disk/50025347001.c9172097e0903b01762fea25f78c7df4/%D0%A1%D0%9C%D0%9A.%20%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC%D1%8B%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D0%B8%20%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8..pdf.html
логика поведения менеджера памяти там раскрыта полностью.
По работе с винчестером - документация в образе http://narod.ru/disk/50010416001.c705768cf7cf2f48f54d95b27a47ff5e/AltPRO_ReLoad.IMG.html
который опять же давал CD-Inc там же.
Вкратце, в двух словах: на регистр 177130 навешена доп.функция менеджера доп.памяти контроллера, + сделано ещё несколько регистров для обмена данными с HDD.
Основная сложность эмуляции - крайне хитро распределяемая память в сегменте 170000-177777.
-
? Александр Тишин (Sandro)@ - 26.08.2012 14:56
Спасибо! Прочитал, появились вопросы.
1) Я правильно понимаю, что с винтом работали только SMK? Тогда, по-моему, эмуляция A** особого смысла не имеет.
2) У всех ли моделей IDE располагался, начиная с 177740?
3) Верно ли, что при записи кодов переключения страниц данные попадали и в ВП1-128?
4) Что делать с тем, что SMK256 и 512 не дают подключать десяточный Бейсик общепринятым образом? Ограничить в режиме 0010 память до 128 КБ?
5) Где взять ПЗУ? Или FirmWare/326 на диске -- это оно и есть?
-
? Дмитрий - 26.08.2012 15:09
http://pdp-11.ru/mybk/Altpro/SMK128.rom
-
? Александр Тишин (Sandro)@ - 26.08.2012 15:28
О, спасибо! Ну значит, с реализации SMK128 и начну :)
-
? gid - 26.08.2012 17:56
1) да, более того воплощённых в железо А64-А512 скорее всего и не существует, либо они в таком ограниченном числе, и у людей давно их забросивших, что смело можно считать, что их нет.
но А16, А16М - схематически и логически совсем другие устройства.
2) да
3) да. Но т.к. сразу за передачей кода режима следовала запись 0, то дисковод просто не успевает среагировать.
4) десяточный бейсик там просто не нужен, поэтому реальный железный контроллер в теории его должен жёстко отключать (но так ли это, неизвестно по причине отсутствия этих устройств у людей). Хочешь бейсика - изволь отключить контроллер, либо загрузи с диска специально адаптированный бейсик, чтобы он ещё и с дисководом работал.
-
? Дмитрий - 26.08.2012 18:47
>> дисковод просто не успевает среагировать
Успевал. Я переделывал для своего СМК128 драйвер виртуального диска VDISK из МКДОС под память СМК. При постоянном обращении к 177130 горела лампочка дисковода и он "дрыгал" головами, издавая тарахтящий звук. Но все работало без проблем. Из-за опасений за дискеты я не копировал инфу "дискета-память".
-
? Александр Тишин (Sandro)@ - 27.08.2012 15:17
Похоже, ошибка в тесте JMP/JSR reg была наведённая: после того, как я отправил все опкоды 1x по 4 вектору, он стал нормально проходить. В принципе, после ещё и исправления доступа к регистрам по нечётным адресам тест проходит полностью. Но, разумеется, по-прежнему выводит 3.4 МГц. Причина понятна -- в основном он проводит время в ПЗУ, в эмуляции расширенной арифметики, а для ПЗУ быстродействие машины эмулируется совсем неправильно.
-
? gid - 27.08.2012 19:53
Насчёт дисковода я был неправ. Двигатель вращения он раскрутить не успевал, но головки - штука такая, пришла команда двигать - надо двигать. При наличии винчестера дёрганье головок - проблема уже не Новака.
--------------
А вот кстати да, насчёт таймингов.
Если учесть что свои тайминги Зальцман рассчитывал на БК10, который работал на 3МГц, а БК11 работает на 4МГц. И я где-то здесь же на форуме читал, что на 4Мгц время доступа к ОЗУ увеличивается, и зальцмановские тайминги ещё больше врут.
Для получения правильной эмуляции нужны расчёты новых таймингов.
-
? Дмитрий - 27.08.2012 23:40
В доке http://vak.ru/doku.php/proj/bk/1801vm-series указаны длительности выполнения команд с разными типами адресации. 21 T + 3 tn - чему равно Т и чему tn (мс, мкс)?
-
? Patron - 28.08.2012 00:36
Если внимательнее прочитать то там объяснено, что:
За T обозначен период тактовой частоты процессора, tn-время между выдачей DIN/DOUT и приходом RPLY.
.
Результаты тестирования продолжительности всех команд ВМ1 со всеми способами адресации ( в тактах ) можно посмостреть здесь: ( http://qbus.narod.ru/0.txt )
Методика измерений и исходники тестов здесь: ( http://bk0010.org/forum/?id=3799 )
-
? Дмитрий - 28.08.2012 14:08
>> Если внимательнее прочитать то там объяснено, что:
>> За T обозначен период тактовой частоты процессора, tn-время между выдачей DIN/DOUT и приходом RPLY.
А если внимательно прочитать то, что я спросил? :) Меня интересуют временные значения в мс/мкс/нс. Т выходит равно 3 мкс (3МГц), а вот tn?
-
? Дмитрий - 28.08.2012 14:17
>> можно посмостреть здесь
Еще бы разобраться в этой мешанине... Там черт ногу сломит...
-
? Patron - 28.08.2012 14:46
tn зависит от используемых микросхем памяти - для ПЗУ это ~ 400 нс, а для ОЗУ ~ 1200 нс.
Разобраться в мешанине элементарно просто - нужно искать таблицы таймингов ( начиная с "1801VM1 Timings Test #4" и дальше ).
Все числа в таблицах таймингов - это время выполнения команды в тактах.
Такие таблицы там есть для всех команд ВМ1 со всеми возможными комбинациями всех возможных способов адресации.
-
? gid - 28.08.2012 14:53
В тех доках T - это один такт тактовой частоты процессора.
для БК0010 временное значение T: Tt = 1/3000000 = 0,3(3) мкс
для БК0011: Tt = 1/4000000 = 0,25 мкс
При условии, что на процессор подаётся постоянно такая частота и ни герцем больше, ни герцем меньше.
а вот tn - действительно тайна-тайн и загадка-загадок. Наверно узнать её значение можно осциллографом, и я подозреваю, что для ОЗУ и ПЗУ значения будут разные, и возможно и для БК10 и БК11 тоже будут разными.
-
? gid - 28.08.2012 15:37
Patron, в результатах ваших тестов выполнение команды NOP = 14 тактов.
Если время выполнения NOP = 8T + tn, то отсюда tn = 6 тактов.
Возьмём общепринятое Зальцмановское значение времени выполнения NOP = 4мкс. Для частоты 3МГц это равно ровно 12 тактов, следовательно для 3МГц tn = 4 такта.
Ваши тесты, как я полагаю, проводились на частоте 5.3МГц ? А какой использовался контроллер памяти?
Осталось только вычислить зависимость величины tn от тактовой частоты с учётом особенностей работы ВП1-37.
-
? Patron - 28.08.2012 20:39
Проблема в том, что обсуждаемые формулы из описания ВМ1 даны не для всех команд, а рассчитанные по формулам результаты не всегда хорошо совпадают с измеренными.
В таблицах тестов есть измеренные тайминги всех команд со всеми способами адресации - попробуйте посчитать для всех этих команд те же продолжительности с помощью обсуждаемых формул, взяв tn = 6Т
Рассчитанное значение точно совпадает с измеренным для команд [ NOP ], [ INC R0 ], [ ADD R1, R0 ], [ ADD (R1), R0 ], [ ADD (R1)+, R0 ], [ ADD @(R1)+, R0 ], [ ADD -(R1), R0 ], [ ADD @-(R1), R0 ], [ ADD Addr, R0 ] и некоторых других.
Но, например, для команды [ INC -(R0) ] рассчитано 39Т, а измерено 41Т. Для [ INC @-(R0) ] рассчитано 52Т, а измерено 55Т. Для [ IOT ] рассчитано 72Т, а измерено 82Т.
Возможно, не все формулы точны ( есть там и явные опечатки, когда, например, вместо 4t написано 3t ), возможно, не все тесты корректны.
Так или иначе, но в вопросе таймингов команд 1801ВМ1 ещё есть над чем работать.
-
? gid - 28.08.2012 21:27
Patron, я посчитал, и тоже увидел расхождения. Откуда взялись те формулы непонятно, может прямо из ТО 1801ВМ1, а может тоже кто-то сидел, рассчитывал.
я предполагаю, что несовпадение измеренных значений с формулами объясняет то, что говорил Sandro здесь же ранее:
"Если речь идёт об ОЗУ, то ВП1-36 работает так: на одну телевизионную строку длительностью 64мкс ровно у неё происходит 96 циклов доступа к памяти, из которых чётные (при нумерации с 0) достаются процессору, а нечётные -- видеоадаптеру (даже на полях видеосигнала). То есть, при частоте 3 МГЦ процессор может читать/писать данные только каждый 4 такт, строго. Поэтому у БК-0010 время исполнения всех команд из ОЗУ кратно 4 тактам, всегда.
В 11М процессор работает на 4МГЦ, а ВП1-36, естественно, всё так же на 3 (или 6, это как посмотреть :) ). Поэтому выходит, что процессор получает доступ в ОЗУ 1 раз в 5 1/3 такта. В среднем.
А поскольку даже простую команду он не может выполнить за 5 тактов, то получается исполнение за два цикла доступа к памяти, хотя реально из них используется только один -- для чтения команды."
На 5МГц время доступа к памяти опять же будет другим.
Вот оттуда и берутся лишние такты в измерениях, если циклы процессора и контроллера памяти не совпадут, процессор ждёт, когда ему будет можно обратиться к ОЗУ, и на разных частотах это время разное. Если при доступе к ПЗУ на разных частотах мы будем получать одинаковые измерения, то это предположение верное.
-
? Patron - 28.08.2012 21:39
Формулы из ТО 1801ВМ1.
Тесты запускались на ДВК 5.3 МГц - там память всё время свободна.
Для большого числа команд рассчитанное значение числа тактов точно совпадает с измеренным.
Нужно продолжить начатое весной осциллографическое тестирование таймингов 1801ВМ1 и вывести точные формулы на все случаи жизни.
-
? gid - 28.08.2012 22:39
Сейчас вбил ваши тайминги в эмулятор, и с ними он на 4Мгц в тесте показывает 2.6МГц. Так что, для эмуляции ДВК они может и сгодятся, но для БК они не подходят.
-
? Patron - 28.08.2012 23:46
Эти тайминги хорошо подходят только для ДВК 5.3 МГц.
Потому и нужны максимально точные "формулы быстродействия", чтобы для любой тактовой частоты и любой задержки памяти можно было рассчитать, сколько тактов будет выполняться команда.
Сначала, наверное, мы эти формулы для ДВК постараемся вывести, а потом (если получится) проведём осциллографическое исследование работы 1801ВМ1 в БК и выведем формулы и для неё.
-
? Аноним - 25.09.2012 20:13
гнеге
-
? Аноним - 14.12.2012 09:08
ker
-
? Patron - 14.12.2012 12:39
Если есть реальная БК, для которой хотелось бы узнать точные тайминги - это легко сделать при помощи имеющихся у меня тестов.
Было бы на чём их запускать..
-
? Лёха Башой - 02.10.2013 02:17
Всем привет!
Ну вот у меня на столе стоит 10ая БКшка. Хочу ее тайминги :) И в шкафу еще одна (моя первая из 88го).
¤
Кстати работа над эмулятором снова застопорилась? На битбукете пока 0.5 лежит.
Буду рад если кто подкинет 0.2 0.2A 0.3 версии. (Полные)
Bitbucket не содержит src.zip сейчас. А я бы поломал этот архив :)
¤
2 Sandro: может правда пора исходники открыть? Ну или во всяком случае я непрочь покопаться с таймингами. Давно это планировал.
¤
Жду ответа :)
-
? gid - 02.10.2013 10:52
Т.к. релизная версия эмулятора не обработана обфускатором, он спокойно декомпилируется обратно в исходники, не пригодные для сборки, но вполне понятные для анализа его работы.
Тайминги там кстати обычные, Зальцмановские, из журнала ПК БК.
.
И кстати о таймингах, работу с тестами Patronа, которую я забросил, планирую до зимы всё таки доделать. Запускал их в 0Т ОЗУ от СМК-512 (я надеюсь что 10нс всё таки слишком быстро для БК и не будет давать доп. задержек), осталась непонятной одна проблема - почему-то тайминги MOVB очень отличаются от таймингов MOV, в то время как тайминги остальных байтовых двухоперандных команд совпадают со словными. Надо ещё раз внимательно пересмотреть код, нет ли обращений в ОЗУ БК, которые вносят помехи.
Ещё для 4МГц и 6МГц тайминги различаются, значит, либо ОЗУ СМК-512, либо уже МПИ всё таки вносит какую-то задержку.
.
Ещё я долго думал, и пришёл к выводу, что создать достоверный эмулятор БК, в отличие от ДВК, УКНЦ и прочих PDP, где нет богомерзкой ВП1-037, можно лишь зная микрокод ВМ1, чтобы точно знать сколько тактов выполняется дешифрация опкода, когда происходит обращение к ОЗУ для первого операнда, когда если надо для второго, чтобы точно знать на какой цикл ВП1-037 попадает это обращение, чтобы знать, сколько тактов (ВП1-037) задержки добавлять. А добавлять надо, судя по диаграмме из Книги, от 0 (если невероятно повезло попасть прямо к началу цикла ПРЦ) до 16 (во всех остальных случаях, причём не просто 16, а 1, 2, 3 и т.д. в зависимости от того, когда было обращение). Иначе никак не получится сделать вывод на экран, синхронизированный с ходом луча ЭЛТ, широко используемый во многих демках.
-
? Лёха Башой - 02.10.2013 13:41
Ну вот собственно у меня была идея speed-lock защиты для живых БКшек. Максимум что я могу сделать со своей стороны - погонять код на 10ой живой в привязке к /128 таймеру.
Ваш опыт с ВП1-037 весьма ценен.
¤
Думал не о среднем замере большого количества инструкций, а о замере одной. И посмотреть не резлетятся ли результаты с кучей.
¤
Про эмулятор на jave - да.. код открылся. Интересен собираемый вариант с минимумом пассов руками :)
Сейчас буду делать связку PC - БК через магнитофонку. Доработок ноль. У всех есть.
-
? Лёха Башой - 02.10.2013 14:00
Кстати.. а если память внешняя на контроллере (МПИ). И кода запускается оттуда. То доп.задержек к обращению в ОЗУ от ВП1-37 уже быть не должно?
-
? Лёха Башой - 02.10.2013 14:02
Код запускается с внешней памяти. Будет ли он быстрее по сравнению с запуском из стандартной ОЗУ?
Аналогично с ПЗУ. Быстрее ли он выполняется по сравнении с ОЗУ?
Вероятный ответ напрашивается. Но хочется знать точно. На реальных тестах.
-
? gid - 02.10.2013 15:20
[Максимум что я могу сделать со своей стороны - погонять код на 10ой живой в привязке к /128 таймеру.]
Не имеет смысла, все, кто хотел, уже гоняли в 90х годах прошлого века (правда свои тесты, и я в том числе), убедились, что результаты получаются такие же, как у Зальцмана в пределах погрешности.
[Думал не о среднем замере большого количества инструкций, а о замере одной. И посмотреть не резлетятся ли результаты с кучей.]
Если измерять не тривиальный NOP или CLR R0, а какую-нибудь с доступом к памяти БК, то время выполнения инструкции будет зависеть от того, какая инструкция была предыдущей.
[а если память внешняя на контроллере (МПИ). И кода запускается оттуда.]
то будут только задержки самой памяти и МПИ, если память быстрее МПИ, то остаются только задержки МПИ.
[Код запускается с внешней памяти. Будет ли он быстрее по сравнению с запуском из стандартной ОЗУ?]
если внешняя память не медленнее стандартного ОЗУ БК, то будет.
[Аналогично с ПЗУ.]
и ПЗУ быстрее стандартного ОЗУ БК, просто по определению, у него задержка меньше, чем у ОЗУ + ВП1-37 не мешает.
-
? Лёха Башой - 02.10.2013 22:10
Причина известна почему зависит от предыдущей команды? Где то видел про штраф за доступ к памяти. Cmp R0,(R0) и Cmp (R0),R0 - разные такты.
-
? gid - 03.10.2013 09:44
[Причина известна почему зависит от предыдущей команды?]
Известна, потому что так работает ВП1-37.
Ознакомьтесь с
http://bk0010.org/forum/?id=2716
http://bk0010.org/forum/?id=3799
с Книгой из http://bk0010.org/forum/?id=14692 (там достаточно маленького кусочка с диаграммой работы ВП1-37)
и уже не помню где, но в разных темах рано или поздно заходит разговор о работе ВП1-37.
И дело не в штрафе, а в том, кому как повезёт попасть на разные циклы работы ВП1-37 при доступе к ОЗУ.
Например попал на цикл Экран, или промежуточный - ждём цикла ПРЦ, попал на цикл ПРЦ - хер вам, ждём следующего цикла ПРЦ (см. диаграмму работы и словесное описание).
-
? Литредактор@ - 03.10.2013 14:34
Напоминаем уважаемым участникам, что приняты поправки к КОАП о ненормативной лексике в СМИ - см.
-
? Аноним - 03.10.2013 14:43
Предлагаю автоматически при вводе заменять буквы ненормативной лексику символами "№" раз и навсегда закрыв эту проблему!
-
? Литредактор@ - 03.10.2013 14:59
Для начала можно опубликовать полный список недопустимых слов.
-
? Аноним - 03.10.2013 15:06
:) Какое СМИ возмется за это благородное дело?
-
? Литредактор@ - 03.10.2013 15:22
Иносланное СМИ - а тут ссыльку дать .
-
? gid - 03.10.2013 16:31
Ещё было бы неплохо напомнить уважаемым участникам собственно сам этот пресловутый КОАП, т.е. статью из него http://www.zakonrf.info/koap/13.21/
А ещё определение, что есть СМИ http://www.consultant.ru/popular/smi/
Там ясно, хоть и многословно сказано, что чтобы быть СМИ в интернете, надо зарегистрироваться как СМИ (ст.2 последний абзац), со всеми вытекающими последствиями (проблем и забот - куча, выгоды конкретно для форума - никакой). Ничто в интернете по умолчанию СМИ не является, пока оно не зарегистрируется соответствующим образом. Так что нечего бояться заранее, или пугать ежей обнажённой кормой.
Как говорили умные люди: "Ни в одном Федеральном Законе не закреплено такое понятие, как «нецензурная лексика». Поэтому является ли какое-либо слово либо выражение нецензурным будут определять специальные эксперты-филологи." А учитывая состояние нашей образовательной системы, эти жертвы фурсенко такого наэкспертируют, что бояться вовсе бессмысленно.
-
? Аноним - 03.10.2013 19:02
А как с быть постановлением ДСП о признании ВСЕХ форумов и блогов СМИ ?
Если не трудно - ознакомьтесь с судебной практикой за 2013 г. - гугля в помощь.
-
? gid - 03.10.2013 19:25
гугля на запрос "постановление ДСП о признании ВСЕХ форумов и блогов СМИ" выводит всякую херню, никакого отношения к запросу не имеющую.
ДСП расшифровывает как Древесно-Стружечная Плита.
Чё-то я не понимаю, как это и на каком основании Древесно-Стружечная Плита чё-то там постановляет, вопреки законам РФ? Отсыпьте ссылок из своей гугли пожалуйста, моя сломалась.
-
? Аноним - 03.10.2013 20:27
ДСП к дереву имеет несколько отдаленное отношение.
Переводится как Для Служебного Пользования - как и все ГБшные доки, не менее 3-й группы доступа - категория СМИ.
Рекомендую сузить диапазон поиска до криминальных хроник - "осуждение блогера", "инернет-СМИ" и т.п. ключевые слова.
Я бы здесь привел более конретно и номера доков с датами - но на Колыме уже холода, неохота мерзнуть до наступления демократии.
(1937-й год уже гораздо ближе, уважаемые, чем думают некотрые.)
-
? Аноним - 03.10.2013 20:39
:) Таков человекус-пост-советикус - обжегшись на молоке дует на воду но не на горячее молоко с белым хлебом.
-
? Лёха Башой - 03.10.2013 20:45
Словесное описание ВП1-37 с (хрен вам) на 124 странице.
Заметьте мата уже нет :)
-
? Лёха Башой - 03.10.2013 21:39
А нельзя ли расписать сигналы сверху вниз на той "памятной" цветной диаграмме. Я не электронщик и догадываться не умею.
Кстати почему красной ручкой прописан простой 720 мин и 1200 макс. Откуда такие выводы?
Притом что 664нс - 4такта при 6Mhz.
Еще присутствует пометка 180нс на такт CAS. Это вообще 5.55Mhz
-
? Лёха Башой - 03.10.2013 21:54
[И дело не в штрафе, а в том, кому как повезёт попасть на разные циклы работы ВП1-37 при доступе к ОЗУ.]
¤
У нас каждые 8 тактов есть вероятность "успеть" активному устройству (процессору) на чтение ОЗУ в своё окно.
Т.е. по идее каждая команда выравнивается по границе 8 тактов на каждое чтение памяти. Надо лишь успеть выставить запрос на доступ к памяти до некоторой мертвой точки в фазе "цикл экран".
Т.е. в случае выполнения программы из ОЗУ (чтение опкода каждый раз при исполнении) - команда должна занимать N * 4 тактов. В чем я ошибаюсь?
Да и вообще всегда N*4 из озу.
-
? SPY@ - 03.10.2013 22:04
По некотрым разветданным, там писали о задержке для МПИ со стробированием RPLY для ВМ1.
Внешние надписи на диаграмме могли быть для др. кварца или по результатам измерений на объекте анализатором.
В основном надписи карандашом/ручкой относятся к проектированию ЭД на РУ7 - это как раз 1991 г. был.
Для страждущих могу Э3 образца поделки ЭД попросить выложить.
-
? MM@ - 03.10.2013 22:08
На диаграмме видно, что какой-бы не был камень, все равно никаким образом он не перепрыгнет через ( примерно ) 320К селекций в
секунду. Это явно показывает ВМ1 на 6 мгц и ВМ3 на "всех парах".
-
? MM@ - 03.10.2013 22:10
И к тому же 037 плохо разгоняется - порог где-то в 7.2 мгц - для 60 кадров/сек может и не пойти - зависит от партии и питания.
-
? Лёха Башой - 04.10.2013 00:43
А вот еще казус у меня в голове случился.
¤
312.5 строк на полукадре... 50 полукадров... частота у БК10 - 3 Mhz
¤
Делим.. получается 192 такта на строку. Еще делим на 8 тактов (на одно слово). 192 / 8 = 24
Не получается. По идее надо 64. слова прочесть на одну строку.
Где ошибка в расчетах?
-
? Лёха Башой - 04.10.2013 00:47
Туплю. 32. слова нужно прочесть на строку. 32*16 = 512 точек
-
? gid - 04.10.2013 13:07
[Да и вообще всегда N*4 из озу.]
Это только для БК10 на 3МГц, для 4МГц уже не так, см сообщение
? Александр Тишин (Sandro) @ - 28.05.2010 00:26
в этой ветке.
А если проц будет работать на 5МГц или на вообще какой-нибудь дробной частоте, типа 5.21 МГц ситуация будет уже совсем другая. Все команды, в зависимости от того, на какой цикл попадут, будут иметь по 3 набора таймингов: х, х+8, х+16 (такты CPU) в зависимости от предыдущих инструкций, а для 3МГц получается всего два набора х, х+4 (такты CPU) и то, это только моя гипотеза, не имеющая доказательств.
[312.5 строк на полукадре...]
Это уже всё вычислили и обсудили, можно сделать поиск по форуму строки "312.5" выйдет куча результатов, но интересны там как минимум 2:
http://bk0010.org/forum/?id=8034 - сообщение ? ys05 - 17.03.2012 00:14 и рядом с ним
http://bk0010.org/forum/?id=6393 - сообщение ? Александр Тишин (Sandro) @ - 3 января 12:59 и до него, там речь шла о таймере 50Гц
-
? Александр Тишин (Sandro)@ - 12.10.2013 21:52
gid, фокус в том, что MOVB изменяет старший байт регистра, от этого у неё собственный микрокод.
¤
Лёха, частота пикселей не 3 МГц, а 6 для цветного и 12 для ч/б выхода. Пиксели формируются не 1-37, а внешней схемой.
-
? Лёха Башой - 12.10.2013 22:29
6Mhz как раз достаточно для выборки видео-памяти на БК0010. Учитывая что 8 тактов уходит на циклы ПРЦ/ВИДЕО.
Спасибо )
-
? Макс Багаев@ - 04.12.2013 10:59
Кстати а где сейчас лежит доступный для скачивания эмулятор ?
-
? Бармалей@ - 04.12.2013 22:44
Вот тут есть:
¤
http://bk001x.ru/index/bk2010/0-51
¤
http://bk001x.ru/index/bk_terak_emu/0-52
-
? ндр - 04.12.2013 23:21
Ох какой сайт крутецкий!
-
? Бородач - 28.05.2015 22:24
Невольным заложникам прошлого свободным гражданам будущего привет!
-
? Весельчак У и Крыс - 28.05.2015 23:08
Здравствуй дядя бородач борода из ваты? Пишем тебе из прекрасного далека, всё у нас есть, только Алиса ушла в прошлое без санкции соответствующих органов, и изменила реальность придавив цветок и лишив пищи бабочку, из за этого у на теперь на месте космозоо "пятёрочка". Где же теперь стащить миелофон, будь ты хоть трижды космическим пиратом?
-
? Lasoft / Excess team@ - 19.02.2018 14:57
Александр Тишин (Sandro), можно как-то с вами связаться? я не совсем понял, как у вас устроена эмуляция вм1 и вп1-037?
-
? Лёъа Башой - 23.02.2018 13:11
Одно время исходники были доступны? Потом убрали.. Если я правильно помню. Искал, искал, от нарыл.
-
? Alexander Tishin (Sandro)@ - 23.02.2018 18:08
Связаться можно например тут. Какие конкретно вопросы интересуют?
¤
Исходники в любом случае выложены будут; к сожалению за все эти годы у меня либо не было времени привести их в порядок, либо желания. Но раз интерес есть ...
-
? Лёха Башой - 23.02.2018 22:07
Вот и отлично, всегда интересно посмотреть что и как, поиграться.. поделиться 2х копеечной монетой... Предпочитаю делиться идеями, а не самому плодить клоны) БК-шка до сих пор на столе, и до сих пор магнитофонный вход воткнут в саунд бластер... Но не включал года два.
Новый виток обострения...
-
? Manwe - 22.04.2018 00:06
Sandro, очень хочется иметь возможность запуска эмулятора из командной строки с передачей в качестве параметра .bin-файла, чтобы эмулятор загружал его в память БК и сразу запускал. У нас уже есть подсветка ассемблерного синтаксиса в Sublime Text и компиляция ассемблерного текста на MacOS X. Получаем на выходе .bin файл. Но автоматически запустить его на Маке нечем.
-
? Alexander "Sandro" Tishin@ - 23.04.2018 04:07
Манве, запрос принят. В принципе, это несложно, просто нужно время найти.
-
? Manwe - 23.04.2018 08:08
Sandro, круто! :) Спасибо!
¤
Вот наши инструменты для программирования на MacOS X, если кому интересно:
https://github.com/imachug/pdp11asm
-
? Adam Bazaroff@ - 05.06.2018 01:16
Alexander "Sandro" Tishin, спасибо за java-эмуль! Очень помогает в разработке на Mac.
Надеюсь не только на 0.6 версию, но и на 1.0 :)
-
? Alexander "Sandro" Tishin@ - 11.06.2018 10:57
Всегда пожалуйста!
К сожалению, последний месяц был сплошной аврал, домой приходил только поспать. Сейчас время освободилось, потихоньку приделываю параметры командной строки. Возможно будет что-то ещё. Может, полноэкранный режим, может, более точная эмуляция AY (сейчас там звук не вполне соответствует оригиналу кое-где, если внимательно слушать).
¤
Пожелания есть?
-
? Manwe - 15.06.2018 15:56
Есть какая-то проблема со звуком на старой Mac OS X 10.6.8 – работает только в режиме no sound, иначе эмулятор вылетает через секунду после заруска, во время скроллинга экрана (БК-0011м).
А на свежей Mac OS X всё нормально.
-
? Adam Bazaroff / Excess team@ - 28.09.2018 14:58
Будут движения? Мы всё ждём :)
-
? Adam Bazaroff / Excess team@ - 17.10.2018 10:24
Можно как-то поменять расцветку палитр? Она в эмуляторе совсем неправильная, а мне нужно подбирать комбинации, для новой демки. Как-то без жесткой инвазии в код эмулятора можно сделать?
-
? gid - 17.10.2018 11:05
Разобрать декомпилятором явы модули на исходники (которые потом обратно всё равно не скомпилятся, но функции оттуда брать можно)
И глядя на них написать свой эмулятор на Яве. По другому никак. Издержки проприетарности.
-
? Alexander "Sandro" Tishin@ - 17.10.2018 18:25
Так, дела такие:
¤
К сожалению, свободное время нашлось только сейчас.
¤
Управление с командной строки уже есть, осталось дотестировать.
Цвета будут правильные.
Будет полноэкранный режим.
Со звуком надо что-то делать, они в Java 8, похоже, переделали потроха, пока поставлено в низкоприоритетные задачи.
Потактовая симуляция, слава BarsMonster'у, будет, но не в этой версии. Много переписывать.
¤
Исходники будут, но дайте что ли время их причесать. Кто какую лицензию рекомендует? Я пока склоняюсь к MIT.
¤
PS: И, в конце концов, есть где-нибудь однозначная дока на SMK? А то мне какое-то обрывки попадаются.
-
? Manwe - 20.10.2018 14:55
Sandro, это хорошие новости!
Лицензия MIT - это правильно.
Информация про контроллер SMK: http://forum.pk-fpga.ru/viewtopic.php?f=39&t=5401
-
? Adam Bazaroff / Excess team@ - 03.01.2019 23:57
Ждём-ждём... есть новости по эмулятору?
-
? Лёха Башой - 04.01.2019 06:12
Затопил БКшку. Откопал свой старый micro2ws на котором и компилил свой турбо-загрузчик. Опять пошел гулять на тему скорости комманд.
Внутренний таймер на максимальной скорости - счетчик каждые 128 циклов. Интересно начало этого счетчика как-то выравнивается, или где то просто делитель на 128.
NOP - занимает 12 тактов. Замеры детства подтвердились - у БК0010 - 250тыс. операций регистр-регистр.
¤
Статика явно медленнее родной памяти (кривая обвязка) раза в 1.5.
¤
Поигрался с видеопамятью... Кто нибудь строил точную модель видеоконтроллера?
-
? Adam Bazaroff / Excess team@ - 25.01.2019 15:28
Методом случайно-научного тыка открыл ДЕБАГЕР в этом эмуляторе!
Почему о нём нет информации в документации??? Столько крови себе без него извёл!!!
На Mac он вызывается нажатием CMD+ALT+F11. В config.ini должна быть строчка «general.debugger = yes».
Теперь работать будет проще! И пользуясь случаем, хочу попросить новую версию эмулятора у Александр Тишин (Sandro). Очень надо!
¤
Как выглядит отладчик: https://i84.fastpic.ru/big/2019/0125/ff/8776817ec982f440ff1b992f0c508eff.jpeg
-
? Manwe - 16.01.2020 11:51
Александр, не могли бы Вы добавить в эмулятор переключение экрана в режим 4 градации серого для БК 0011? А то сейчас он только для БК 0010 работает.
-
? Alexander "Sandro" Tishin@ - 13.02.2020 19:07
Ффух. Стало понятно, что свободного времени как нет, так и не будет, скорее всего. Поэтому выкладываю что есть в качестве альфа-версии 0.6
¤
Благо, теперь есть результаты реверса микросхем, и многое стало понятней.
¤
Что есть:
¤
* Починена эмуляция AY. Теперь синтезатор работает, как на самом деле, а не как в документации написано. Звук стал намного более похож на реал.
* В значительной части починен видеоадаптер. Теперь там 320 строк, а не 312. Блин, в упор не понимаю, так было сложно счётчик до 312 сделать? Вместо того схемотехнического ужаса, который они там нагородили?
* Кадровое прерывание подвинуто в более правдоподобное место. Впрочем, поскольку времянки всё равно не совсем совпадают с 11М, то некоторая кривость осталась.
* Реальные палитры.
¤
* Вообще несколько перепилены звук и видео, а то на Windows 7 наблюдались странности. На XP и Vista вроде бы не повлияло. На 8/10 не проверял.
* Ещё некоторое количество мелких правок.
¤
* Ключи командной строки. Ещё что-нибудь стоит добавить?
¤
Чего нет.
¤
* Полноэкранного режима. Если хочется получить красивую картинку, то там больше заморочек, чем я ожидал. Пока отложено.
* SMK и соответственно HDD. Надо бы, но там надо писать эмуляцию с нуля.
* Совсем точных времянок процессора. Надо смотреть верилог и реконструировать, особенно взаимодействие с шиной. Хотя бы потому, что правильная эмуляция зомби-циклов критична.
* Эмуляции новооткрытых багов, в первую очередь бага с флагом C. MOVB, CLR(B) и MFPS тоже однозначно нуждаются в ремонте.
* Вместо отладчика как был макет, так и остался. Увы.
* Нет мыши.
* Не эмулируются тонкости работы клавиатуры.
¤
Пока так.
¤
Ссылка: https://yadi.sk/d/j8wY2SLzse-Vfw
¤
Предложения по мелким доработкам (час-два работы) принимаются. Пишите.
-
? Alexander "Sandro" Tishin@ - 13.02.2020 19:11
Манве, а как переключать-то? В десятке же нет палитр, а в 11 есть. Если просто 2 бита в 4 уровня конвертировать, то на 11 такого не было никогда, а если RrGB цвет после применения палитры, то это уже не 4 уровня.
-
? Manwe - 14.02.2020 22:46
Sandro, действительно – не подумал я про палитры. Стало быть, RGB после применения палитры конвертировать в серый (в тех же пропорциях, как сделано в БК 0010). Смысл в том, что тот самый шнур RGB-в-Монохром физически можно подключать и к 11-ой БК.
¤
P.S. Спасибо за релиз! Пойду тестировать.
-
? Manwe - 14.02.2020 23:26
в 5-ой части демо Insult почему-то падающие звёзды только в левой части экрана показываются.
-
? Manwe - 15.02.2020 00:15
Вот на этой интре лучше всего тестировать переключение палитр по лучу:
https://www.pouet.net/prod.php?which=83604
-
? Alexander "Sandro" Tishin@ - 15.02.2020 16:46
А исходник можно, чтобы с дизассемблером не возиться?
¤
Про 5 часть я знаю. Там генератор случайных чисел ЕМНИМС на времянки машины как-то завязан, вот оно и выходит так.
¤
Про палитры: в десятке вообще не было никакой конверсии цветов. Просто коды 01, 10, 11 транслировались либо в уровни серого, либо в BGR. За BGR им отдельное "спасибо", так как по уму надо было делать BRG. В порядке возрастания субъективной яркости. Ну да, пришлось бы подумать про шрифт в режиме 512 пикселей, ну и что?
Ладно, про этому тему можно много написать, но это не в эту тему.
¤
Так вот, если делать веса RGB 3:2:1, то палитра 0 будет выглядеть, как оттенки серого на десятке, но остальное будет довольно-таки кошмарно. Например в палитрах, где есть Cyan и Red одновременно, то они будут почти одинакового цвета, причём красный -- ярче. Бедный CSIDOS ...
¤
Если делать физиологически корректно, RGB 2:4:1, то многие палитры 11М будут выглядеть нормально, зато в палитре 0 будет совсем непохоже на десятку в оттенках серого. Особенно пострадает этот самый режим 512 пикселей, там будет бред -- сплошная закраска в два, а то и четыре раза темнее дырчатой. Это никуда не годится.
¤
Вот почему и спрашиваю. Делать-то что?
¤
Я, разумеется, могу сделать оба варианта. Но это будет бардак, разброд и шатание. У всех разные цвета, как у УКНЦ с палитрами RGB vs GRB ...
¤
Очень не хочется так делать
¤
(Кстати, как-нибудь можно попросить админов zx-pk.ru поменять мне почту регистрации? Старая уже ушла давно, а пароля я, естественно, не помню.)
-
? Adam Bazaroff - 15.02.2020 17:52
О! Спасибо за релиз!
Пожалуйста не забрасывай - эмулятор очень спасает и постоянно мною используется в разработке всякого разного под БК.
¤
- Насчет «монохромности 11й» надо вынести режим 10ки в монохроме, и пофигу до остальных палитр, т.к. палитры они для того и нужны, чтобы смотреть в цвете. Другие режимы можно спрятать «под капот» в виде ключей, но смысл?
- Просьба ввести поддержку периферии, оно даже важнее чем hdd, имхо. Я про джойстикИ (joyvox), stereo-covox, мышь, блок нагрузок и прочее. Хотя СМК и его ДОЗУ, конечно, тоже интересно использовать.
- Хотябы чуть-чуть дополнить отладчик. Возможность указания стоп-точек, «замедление» процессора с реалтайм отображением содержимого регистров. Редактор данных (пусть прямо числами) был бы вообще сказкой.
-
? Manwe - 15.02.2020 19:29
Sandro, исходники там должны быть в zip-архиве с демкой
-
? Alexander "Sandro" Tishin@ - 15.02.2020 23:57
Manwe, нет там ничего, только democracy.bin и file_id.diz
-
? Макс Багаев@ - 16.02.2020 08:14
2Manwe@
Cпасибо за проделанную работу! это круто!
¤
на счет zx-pk.ru - напиши мне свое мыло и ник, организуем.
¤
Да, подтверждаю, исходников нет.
¤
Могу выделить под эмулятор имя и место
к примеру manwe.pdp-11.ru ?
-
? Manwe - 16.02.2020 10:57
Sandro, вот исходники демки с палитрами: http://thesands.ru/bk0010/democracy.zip
¤
Макс Багаев, поддомен на pdp-11.ru лучше назвать "sandro", а не "manwe", так как эмулятор его, а не мой :)
Впрочем, у меня тоже есть куча наработок, исходников демок, полезных программ и подпрограмм для БК, которые имеет смысл выложить и описать. И статьи.
-
? Макс Багаев@ - 19.02.2020 19:17
без проблем - сделаю два
итого мне нужен email
-
? Manwe - 20.02.2020 11:05
Макс, мой email: manwe@demoscene.ru
-
? Adam Bazaroff / Excess team@ - 20.02.2020 14:57
2 gid: Просто для информации. Меня как минимум дважды спрашивали про английский язык в эмуляторе. Ну и на сайте неплохо бы английскую страничку с минимумом инфы о релизах.
-
? gid - 20.02.2020 15:27
2 Adam Bazaroff / Excess team: Я думал об этом, но решил, что это слишком ресурсозатратно, я не хочу, чтобы хобби превращалось в работу, отнимающую всё время, не остающееся на работу для зарабатывания денег и собственно свободное время для отдыха от всего. Если кто-нибудь захочет, может заняться переводом страничек сайта на английский, только сайт у меня не движковый, а просто набором страниц, так что надо будет делать тупо локализованное зеркало, и если кто-то захочет, может заняться локализацией проекта, там достаточно перевести текст в файле ресурсов, и можно запихать в файл ресурсов сообщения об ошибках из файла BKErrMsgSys.cpp, и потом собирать дллки ресурсосодержащие дополнительными проектами в составе решения VS.
Ещё я руководствуюсь принципом взаимности. Если весь мир настаивает на том, чтоб я знал английский язык для того, чтобы читать то, что мне нужно, то и я в ответ считаю, что пусть весь мир учит русский язык, если ему хочется пользоваться моим эмулятором.
Полезно для саморазвития. Можете передать этот манифест англолюбам.
-
? BD - 20.02.2020 17:11
https://translate.googleusercontent.com/translate_c?depth=3&nv=1&rurl=translate.google.com&sl=ru&sp=nmt4&tl=en&u=http://gid.pdp-11.ru/
¤
только .ini перевести тем же гуглом и менюшки/подсазки..
-
? Adam Bazaroff / Excess team@ - 20.02.2020 20:25
Достаточно перевести хотяб менюшки, да. Это уже снимет 90% вопросов.
-
? Alexander "Sandro" Tishin@ - 21.02.2020 08:37
Макс, спасибо, страничка будет очень в тему. Моя почта: sandro.tishin@gmail.com
¤
Собственно, надо было вставить в readme для упрощения обратной связи, не подумал. В следующем релизе добавлю.
¤
Правда, есть одна неловкость: на форуме вроде был пользователь с ником Сандро, правда -- кириллицей. Наверное, если я всегда буду писать свой ник латиницей, этого должно хватить для различения ...
-
? Alexander "Sandro" Tishin@ - 21.02.2020 08:39
Манве, бегло просмотрел исходник democracy. Да, тут нужна точная потактовая эмуляция, иначе сползёт. Единственное, а точно обработчик прерывания должен выполняться при MTPS #0? Это как-то странно.
-
? Alexander "Sandro" Tishin@ - 21.02.2020 08:45
Адам, джойстик есть, правда на цифровой клавиатуре. Блок нагрузок -- а зачем он? Что им тестировать в эмулируемой машине? Или имеется в виду covox с обратной связью?
¤
Монохром -- я не хочу вводить в эмулятор логику, идущую вразрез с эмулируемой машиной. Пока поэтому сделал режим принудительного форсирования монохрома по Alt-ScrollLock/Ctrl-Alt-F8. В нём просто игнорируются все манипуляции с палитрами, всегда выводится монохром, как в 0010 оригинальной.
¤
С отладчиком сложнее, это же в первую очередь -- пользовательский интерфейс. Ну то есть, можно малой кровью сделать чисто консольный отладчик со всякими d 100 и т.д. но это очень неудобно. Разве что какой-то гибрид, навроде командного режима vim?
-
? Manwe - 21.02.2020 09:23
Sandro, там, наверное, просто места не хватило под запрет прерываний. 512 байт же ограничение.
-
? Adam Bazaroff / Excess team@ - 21.02.2020 11:27
Sandro: ого про джойстик не знал! Но тут опять проблема с тем, что у меня нет нумпада (можно как-то на другие клавиши поменять?). Мне необходим тест управления с джоев, тк делаю игру на двоих.
¤
Блок Нагрузок нужен для совместимости с новым способом проигрывания на ковокс. (В эмуле гида он есть).
¤
Отладчик не могу просить никакой (понятно, что хочется крутого :), но буду рад любому, который поможет в работе.
-
? Adam Bazaroff / Excess team@ - 26.02.2020 22:30
Еще, Sandro, залей пожалуйста новую версию на bitbucket. Я ко всем своим работам указываю ссылку туда на скачивание.
-
? Макс Багаев@ - 27.02.2020 12:27
2Sandro
домен давно готов
http://sandro.pdp-11.ru/
проверь почту
-
? Alexander "Sandro" Tishin@ - 04.03.2020 01:01
Информация:
¤
Почту проверил, ок, по основной работе у меня сейчас загруз со сдачей очередного этапа, надеюсь, к выходным закончится. Тогда будет что выложить, и заодно опробовать сайт.
¤
Буду выкладывать альфы, т.к. не факт, что будет время на отполированную версию.
¤
У bitbucket последнее время происходят какие-то непонятные трансформации, не уверен, что там будет надёжный хостинг исходников и бинарников. Посмотрим.
-
? Alexander "Sandro" Tishin@ - 04.03.2020 02:25
Всё, спасибо Максу, официальным сайтом теперь будет http://sandro.pdp-11.ru/
¤
Пока сделал краткое описание (на английском) в качестве главной страницы и залил последнюю альфу. Кто уже скачал -- там пока то же самое.
-
? Alexander "Sandro" Tishin@ - 01.04.2020 23:56
Выложил на http://sandro.pdp-11.ru/ версию 0.6 alpha 3.
¤
Пока мелочи: сделал принудительное включение серого режима по Ctrl-Alt-F8, плюс Covox с обратной связью (опция Loopback Covox). In Your Space теперь работает ;)
-
? Manwe - 02.04.2020 00:01
Супер!
-
? Макс Багаев@ - 03.04.2020 14:05
+1
-
? S_V_B - 03.04.2020 14:40
Спасибо за труд :)
-
? Manwe - 13.05.2020 08:24
Почему-то неактивны опции multicolor и monochrome в меню настроек. Запускаю на MacOS.
¤
Ещё жаль, что не инициализируется Монитор при запуске бинарника из командной строки. Пришлось сграбить первые 1000 байт памяти и в начале программы вставить такое:
¤
INIT: MOV #MEMORY0,R1
CLR R2
MOV #400,R0
1: MOV (R1)+,(R2)+
SOB R0,1
MOV #770,SP
JMP BEGIN
¤
MEMORY0: insert_file "memory0.raw"
¤
BEGIN:
-
? Alexander "Sandro" Tishin@ - 24.05.2020 15:48
Multicolor намертво включен и выключаться не будет. Эта опция -- реликт. Вероятно, там будет включение экспериментального расширителя палитры.
¤
С монохромом мне пока не очень ясно, как его делать из-за известных заморочек с преключением типа монитора кабелем и поддержкой серого режима.
Исходно была идея сделать его в виде, собственно эмуляции подключения через монохромный выход, но, поскольку это и так можно переключать кнопками ...
¤
Ну, выбор цвета в монохром режиме я в любом случае сделаю, а вот необходимость опции "монохром" не так уж и очевидна.
¤
Про инициализацию -- подумаю, как лучше сделать. Скорее всего, придётся ставить ловушку исполнения кода в нужном месте монитора (после инициализации), и грузить уже тогда. В принципе, для точек останова в отладчике это всё равно нужно делать.
¤
Кстати, надо бы и механизм дампа памяти сделать, да. И загрузки его. Подумаю.
¤
Ещё пожелания?
-
? KUVO@ - 26.05.2020 11:44
Интересует поддержка ловушки частоты отображения экрана, например, код ниже отображается с подергиванием, или я что-то делаю не так?
¤
mtps #0
mov #102,@#100
mov #2,@#102
¤
mov #5400,@#177662
mov #17400,@#177716
¤
mov #40000,r0
mov #20000,r1
0: mov r0,(r0)+
sob r1,0
¤
1: mov #1330,r0
2: wait
mov r0, @#177664
inc r0
cmp r0,#1730
ble 2
br 1
-
? Manwe - 26.05.2020 21:52
Sandro, спасибо за ответ!
Было бы круто через командную строку задавать опцию цвет/монохром. А ещё грузить bin-файл в БК 0011м тоже через командную строку (сейчас только для БК 0010 это работает.
Стерео-Covox тоже полезная фича. Эмуляция джойстика на клавиатуре как-нибудь.
-
? Alexander "Sandro" Tishin@ - 29.05.2020 00:56
KUVO: монитор 60 герц, так? Из-за этого каждый пятый кадр показывается два раза. Потому, как у БК 50 кадров, или, если быть точным, 48 с копейками. Нужен 50/100 Гц монитор. Ну или 120, на нём хоть дрожь будет мельче.
-
? KUVO@ - 29.05.2020 07:42
Да, это понятно. Но на других эмуляторах, которые используют Direct2D или Direct3D плавность сохраняется на разных типах мониторов. Возможно ли использование подобного? А то, прощай демосцена.
-
? Alexander "Sandro" Tishin@ - 04.06.2020 14:31
Посмотрим. В любом случае, в DirectX всё равно те же 60 Гц, никакого чуда там быть не может. Еднственный вариант -- оконная система вносит случаюйную задержку. Надо будет какую-нибудь телеметрию туда прикрутить для получаения отчётов, а то разговоры на форуме тут не помогут.
Кстати, а какая версия эмулятора используется? В последней я несколько поменял алгоритм синхронизации. Теоретически должно было стать лучше.
¤
PS: Кстати, специально проверил -- на моей машине Java использует именно Direct2D в качестве средства вывода. Может, вообще сделать какой-нибудь отчёт об аппаратной конфигурации? Виртуалка виртуалкой, а кое-что из неё таки доступно.
-
? KUVO@ - 02.08.2020 09:04
Спасибо за удобный эмулятор, очень выручает в процессе написания нетленки.
Хотелось бы еще уточнить насущную потребность, это последовательность написания следующих инструкций (после запуска таймера):
¤
1:
WAIT
MOV XXX,@#177664
¤
или
¤
2:
MOV XXX,@#177664
WAIT
¤
Вариант 1 работает на других эмуляторах, но не верно интерпретируется в Вашем (скачки экрана) и, соответственно наоборот, скачки возникают при варианте 2 на других эмуляторах, а Ваш стабильно держит картинку. Возникает вопрос, а как же правильно? По логике, ожидаем начала экрана - WAIT, затем указываем значение скролла - MOV XXX,@#177664 (вариант 1) или не так? Просто страдает "кроссплатформенность" при просмотре релизов на разных эмуляторах (gid, Emulator3000 и др.).
-
? Alexander "Sandro" Tishin@ - 16.08.2020 12:03
Всегда пожалуйста.
¤
А в какой версии эмулятора производится проверка? Я в последней версии эмулятора поправил положение кадрового прерывания, может, в ней проверить?
¤
Если смотреть на железо, то правильный вариант -- wait/mov. Возможноб дело в реализации Wait, надо будет проверить.
-
? KUVO@ - 16.08.2020 14:50
Файл имеет имя bk2010-0.6-alpha3.zip, на http://sandro.pdp-11.ru/. На нем и проверялось.
-
? KUVO@ - 03.09.2020 17:41
Sandro, добрый день. Возможно ли реализовать в командной строке ключ, который позволял бы в режиме БК11М указывать какие страницы необходимо подключить при запуске, ну или указать значение для записи в регистр 177716?
-
? Alexander "Sandro" Tishin@ - 10.09.2020 10:34
Попробую угадать. Наверное, имеется в виду, что хочется автоматически загружать и запускать программу в какой-то подготовленной конфигурации машины, так? Иначе в этой идее мало смысла, БОС же сразу при старте пропишет своё значение.
¤
Тогда речь идёт скорее о реализации механизма снимков состояния машины (снапшотов), который действительно нужен. Но лучше его делать не так...
-
? KUVO@ - 10.09.2020 11:09
Sandro, спасибо за ответ.
Это нужно для простого запуска файла с ключом командной строки -bin. Как написано в документации, при установке этого ключа инициализации БОС не происходит, т.е. определить какие страницы подключены на 40000 и 100000 невозможно. Вот и хотелось бы указывать нужные страницы для загрузки bin-файла. Проблема в том, что размер файла растет и 0-й страницы уже не хватает. Куда грузится хвост файла, который выходит за пределы 0-й страницы - загадка. Или к примеру нужно запустить файл в адресах больше 40000, опять же - нужно подключение страниц.
¤
PS Сейчас у меня командная строка выглядит примерно так: java -jar bk2010.jar -bk0011m -multicolor on -bin myfile.bin
-
? Alexander "Sandro" Tishin@ - 10.09.2020 13:15
Понятно. В эмуляторе там будет по адресу 040000 страница с кодом выбора 1, т.е. второй экран, далее ПЗУ. Ну можно далее ещё ОЗУ отобразить. Даже надо было бы как раз для таких случаев.
¤
При загрузке из БОС там может быть какая угодно страница ОЗУ. Хоть нулевая ещё раз.
¤
Думаю, проще будет сделать известные страницы ОЗУ до 140000, чем пихать что-то в командную строку. Сойдёт?
-
? KUVO@ - 10.09.2020 13:18
Ок. Скажем, пусть идут по порядку 0,1,2. Спасибо, заранее.
-
? KUVO@ - 26.12.2020 11:16
Alexander "Sandro" Tishin@ Добрый день. Есть ли какие то подвижки в реализации намеченного? Народ сообщества активно пытается использовать ваше творение, а тут вдруг тишина. Ждем с нетерпением и спасибо за отличный инструмент.
-
? Alexander "Sandro" Tishin@ - 27.12.2020 11:21
Прошу прощения -- с октября месяца работаю по 6 дней в неделю, на эмулятор просто не остаётся времени. :(
¤
29 декабря, по идее, должны сдатавть работу, так что после этого время будет. Я надеюсь.
¤
Попробую что-нибудь из доработок собрать в ближайшее время.
¤
Да, про загрузку .bin -- я подумал, пришёл к выводу, что их всё же надо грузить в подготовленный снапшот и никак иначе. Сжатый снапшот занимает несколько КБ, можно даже в бинарник встроить.
-
? Adam Bazaroff / Excess team@ - 27.12.2020 13:01
Александр Тишин (Sandro), вопрос-просьба по эмулятору. Очень нужна новая версия :)
Нужна среда для разработки, Manwe и его сын, почти портировали компилятор pdp Морозова на Mac, попутно исправив пару недочетов и реализовав пару новых функций. Пытаемся сделать среду разработки, связав Sublime + компилятор + эмулятор. Сейчас очень проблемно каждый раз скомпилированный файл закидывать на bkd диск, или генерить .bin и подключать всё ручками, закрывая/открывая эмулятор. От лица всего сообщества просим выпустить новую версию, ХОТЯ БЫ с поддержкой командной строки, чтобы передавать bin/bkd и функцию рестарта эмулятора (именно программы, а не эмалируемой БК). Поясню: последнее нужно для того, чтобы эмулятор обновил изменённый «во вне» имидж диска, на который «ляжет» скомпилированный файл. Возможно объяснил не очень :) свяжитесь со мной https://vk.com/adambazaroff создадим уютный чатик для тех, кому это интересно и попробуем сообща сделать удобную среду БК разработки для Win/Mac. Заранее спасибо!
-
? Adam Bazaroff / Excess team@ - 27.12.2020 13:01
2Sandro: Я специально раздобыл клаву с нумпадом, но беда пришла с другой стороны.
¤
Данные твоего джойстика сейчас (правая колонка) и стандарта JoyVox (левая колонка):
¤
; Joystick 1
; 177714 bits Tishin
; 10 left 1000
; 2 right 20
; 1 up 2000
; 4 down 40
; 40 A 2
; 100 B
; 200 select
; 20 start
¤
JoyVox, по утверждению Manwe он использует стандартную схему...
Значит у тебя не стандартная :( Как можно изменить данные в эмуляторе?
¤
И не забрасывай пожалуйста эмулятор. Очень нужен! Те штуки, которые описал Kuvo — киллерфичи. Очень помогут в разработке.
Заранее спасибо.
-
? Alexander "Sandro" Tishin@ - 31.12.2020 11:40
Эмулятор забрасывать не собираюсь. Собственно, у меня есть планы написать кой-чего для БК, так что эмулятор нужен самому. С временем вот сложно. Чуть DiHalt не пропустил, надо бы хоть чего-то туда отправить.
¤
Прежде, чем что-то называть стандартом, его неплохо бы выложить на всеобщее обозрение. ;) Где именно в интернете находится стандарт на Joyvox?
¤
Указанная схема -- это джойстик из из поставки БК-0011 с добавленными кнопками. До 1989 года его не было физически, все паяли джойстики по собственному вкусу. Ok, пусть будет такая разпайка. Правда, это ещё и распайка мыши, подключенной по "прямой" схеме. Но при известном умении (и оригинальном желези либо точной эмуляции) мышь и джойстик можно читать одновременно ЕМНИМС. Надо по схеме уточнить.
А правильной была бы схема с мышью через блок КМ, т.е. в старшем байте. Но увы, так сложилось исторически ...
¤
Впрочем, в автомате можно распознать и её. С известной долей уверенности.
-
? Alexander "Sandro" Tishin@ - 31.12.2020 12:20
Adam, насколько я понимаю, хочется чего-то вроде интеграции эмулятора на манер IDE, с запуском новой программы по кнопке?
¤
Тогда так:
1) Эмулятор НИЧЕГО не запоминает из состояния дисков хозяйской машины. Поэтому прибиты гвоздями до следующего рестарта только ПЗУ.
2) .bin каждый раз читаются заново. Собственно, я так софт у себя и отлаживаю.
3) .bkd не загружаются, а монтируются. Синхронизация образа в памяти эмулятора и файла образа происходит по каждой команде перемещения блока головок. Можно сделать по выключению-выключению мотора и даже по таймауту. Наверное, даже нужно.
В любом случае, проблема синхронизации связана исключительно с тем, что почти все ОС для БК хранят в памяти копии таблиц файловой системы. Так-то образ можно править на лету, без проблем.
4) Нужна возможность программно инициировать загрузку .bin или рестарт БК? Хм, мысли на эту тему есть.
5) Какие именно предложения KUVO являются киллерфичей? Если честно, перечитал историю сообщений и несколько не понял. :(
¤
И ещё: у меня ВКонтактика нету. Собственно, у меня он забанен по IP за неприлично навязчивую рекламу, к тому же и жрущую трафик безмерно. Есть какие-то другие способы? Не очень хотелось бы его разбанивать, так как-то спокойнее.
¤
PS: Кажется, окончательно понял, с чего скроллы дрожат больше нужного. Думаю, как устранить малой кровью. Но это точно не сейчас, тут нужно МНОГО тестов писать на разные случаи. Дня на два возни, и чтобы меня не отвлекал никто.
-
? Шестипалов - 02.01.2021 20:10
>В любом случае, проблема синхронизации связана исключительно с тем, что почти все ОС для БК хранят в памяти копии таблиц файловой системы. Так-то образ можно править на лету, без проблем.
.
В ОС для БК существует защита от ошибочной записи на подменённый диск. Т.е., отслеживается ситуация, когда пользователь вставил диск в дисковод, прочитал каталог, заменил диск в дисководе и попытался записать каталог на новый диск. При записи ОС проверяет, записывается ли каталог на тот диск, откуда он был считан. Так что пляска с бубном с правкой образа в памяти эмулятора не нужна. Для ОС на БК это будет выглядеть, как будто пользователь вынул диск из дисковода и вставил другой.
-
? Alexander "Sandro" Tishin@ - 03.01.2021 11:24
Да нет там никаких плясок, просто по команде перемещения головки делается компиляция физического образа дорожки. И если была запись, то анализ структуры и преобразование в образ диска. У меня так сделано.
¤
Кстати, это один из способов отличить эмулятор от реала -- читается не обязательно то, что пишется на диск.
-
? Alexander "Sandro" Tishin@ - 03.01.2021 11:29
... но в Telegram-чат я таки добавился. Так что на https://t.me/bk0010_11m я (теоретически) доступен.
-
? KUVO@ - 03.01.2021 19:45
Alexander "Sandro" Tishin@
[5) Какие именно предложения KUVO являются киллерфичей? Если честно, перечитал историю сообщений и несколько не понял.]
¤
при загрузке bin файла, в режиме БК0011М, либо подключать определенные страцицы на 40000 и 100000, скажем 1-я страница на 40000, 2-я на 100000. Или указывать страницы в командной строке или значение в 177716. Оговаривали же, выше.
-
? Alexander "Sandro" Tishin@ - 13.01.2021 02:10
Будет сделано. на 40000 будет вешаться страница с кодом выбора 1, на 100000 страница с кодом выбора 2. Не номерам из руководства по бк, а по кодам.
¤
Кто эти непонятные номера страниц выдумал -- не знаю, но надеюсь, что в аду для него заготовлен особый лабиринт с надписями на выходах из комнат, которые всегда ведут не туда (за вычетом надписи "начало").
¤
Кстати, ММ надо подвергнуть пыткам и вызнать из него все имена и фамилии виновных. Он же сам себя показывает главным свидетелем и соучастником преступления.
¤
(сейчас буду постепенно озверевать)
¤
Джойстик будет сделан, как в одинарной версии Joyvox. Манве сотоворащи выставляется претензия за недостойное отношение к документированию собственных достижений труда.
¤
Двухканальная версия Joyvox зачем сделана так? Чтобы убить совместиместь с принтером и прочей периферией?
¤
Порт 177715 для кого не использован? Для аигрека? Так он нам очень мало неиспользован.
¤
Мышь. Это отдельный печальный вопрос. Потом ...
¤
Кстати, о моём присутствии в telegram-чате. Дуровские телеграфисты меня очень быстро забанили без объяснения причин. В прямом смысле без объяснения -- запросы в техподдержку игнорируются. Борцы за свободу слова на мировом уровне, х.ле...
¤
Никогда не верил всем этим "борцам за мир во всём мире" всех сортов и мастей. И им тоже. Только ради БКшников зарегался, только с БКшниками и общался и вот на тебе. Я даже и не удивлён.
¤
Кстати, после бана сторонниками свободного общения ты не можешь узнать, с кем и о чём говорил. Ребята, киньте пожалуйста историю мне почтой, продолжим как-то иначе, разговоры повисли же.
¤
(продолжим чуть далее для систематичности изложения)
-
? Alexander "Sandro" Tishin@ - 13.01.2021 02:34
Извините, что ругаюсь, тут в реале оптом на меня кирпичи посыпались. Больно!
¤
В любом случае:
1) Первый джойстик из Joyvox со всеми кнопками будет. Со вторым вопрос, куда мапить. Реальный джойстик из просто джавы недоступен. Выделять блок клавиш? Собственно, это ещё выше обсуждалось, я пробовал кодить -- очень грязно выходит.
2) Полноэкранный режим. Надо? Есть опять же грязный код, но ... в общем, кто не спрятался, я не виноват.
3) Есть грязный мышехак. Надо найти физическую Марсианку, и восстановить реальную схему на всякий случай. Мышь у меня была, но судьба коробок, валявшихся более 20 лет ... или хак пройдёт?
4) Кстати, несмотря на те же биты мышь от джойстика отличается в один момент. Джою плевать на бит сброса передвижения. Но кто одно устройство на другое решил наложить -- наркоман.
5) Мышь можно проверять без писка в Covox. Догадайтесь, почему.
6.1) SMK, етить. Кто-нибудь может XTCKJDTXTCRBV ZPSRJV объяснить, как же у него на самом деле работает отображение памяти?
6.2) SMK, продолжение -- физического устройства для проверки у меня нет. Официальная документация написана ретикулянцами. Есть человеческое описание или хотя бы HDL модель?
¤
(далее совсем жесть)
-
? Alexander "Sandro" Tishin@ - 13.01.2021 02:41
Я вот думал про красивое устройство для палитр. Думал, думал, и написал сюда на форум один из вариантов.
-
? Alexander "Sandro" Tishin@ - 13.01.2021 02:54
И было спрошено, а зачем это, кроме как для написания нескольких демок. Вопрос, разумеется, грубый. Но справделивый. Поскольку, зачем?
¤
И вот возник у меня вопрос: а может, взять все осмысленные комбинации 3 цветов + чёрный, м забать их в таблицу, да и так и спользовать, поддердиая овместимость с 11М?
¤
Так вот по моим подсчётам, что выходит. Приходится пожертвовать фиолетовым, правда, но остальных интересных комбинаций цветов всего 20 штук. Причём этот набор сильно пресекается с набором палитр 11М, в 5 бит всё влазит, и ещё остаётся место для окрашенных 1-бит режимов.
¤
Вся модификация для БК-0011М -- другая прошивка для 556РТ4, пара корпусов мелочи, несколько порезов и проводков.
¤
Все старые игрушки перекрашиваются мелкой правкой кода. Без изменения размера.
¤
Но, для вкуса можно спрайты перецветить.
-
? gid - 13.01.2021 08:35
[6.1) SMK, етить. Кто-нибудь может XTCKJDTXTCRBV ZPSRJV объяснить, как же у него на самом деле работает отображение памяти?]
Именно так, как нарисовано в таблице в той, пресловутой документации.
Память делится на страницы по 32Кб, в единый момент времени подключена какая-нибудь одна из страниц. Но страница в свою очередь делится на сегменты по 4кб, которые тасуются между собой в зависимости от режима работы. Разные сегменты разных страниц между собой соответственно никак не пересекаются.
¤
[Официальная документация написана ретикулянцами.]
Ну, если над ней помедитировать, становится всё более менее понятно, особенно если заглядывать в схему контроллера СМК-64, а так же в схему А16М. Т.к. СМК - это просто А16М на стероидах.
А вот исходники альтпрошного Ром биоса и РАМ биоса - вот это точно инопланетянамм писалось.
¤
[Есть человеческое описание или хотя бы HDL модель?]
Человеческого описания нет, т.е. все попытки его сделать сводятся опять к той же таблице, что уже есть.
HDL есть, вон там https://forum.pk-fpga.ru/viewtopic.php?f=15&t=492
Но оно гораздо более непонятно. по крайней мере мне. Его тоже инопланетянин писал.
¤
Кстати насчёт мыши. Есть какой либо способ, чтобы согласовать скорость движения реальной ПКшной мыши и мышиного курсора в БКшной проге в эмуляторе, который эмулирует марсианку?
А то у меня фигня какая-то получается. В ксидосе курсор мгновенно летает от одного конца экрана к другому просто от малейшего касания к мыши. В других прогах, поддерживающих мышь - курсор еле ползает, а ПКшной мыши даже стола не хватает для движения.
Насколько я помню, на реальной БКшке с мышью марсианкой такой фигни не было.
-
? KUVO@ - 13.01.2021 09:03
[Будет сделано. на 40000 будет вешаться страница с кодом выбора 1, на 100000 страница с кодом выбора 2. Не номерам из руководства по бк, а по кодам.]
¤
Отличная новость. Спасибо. Не совсем понятно что есть код, я что номер. Если код 1, то это экранная страница 5 (буфер экрана 0). Такой расклад не совсем удобен. Я предлагал именно 1-ю и 2-ю страницы неэкранной памяти. У них коды 0 и 2 соотвественно. Т.е. для их подключения пишем: MOV #5000, @#177716. Именно такое расположение было бы предпочтительнее. Просто если будет подключена экранная страница, то загружаемый bin-файл будет виден, что не есть хорошо. Еще раз спасибо.
-
? Adam Bazaroff - 13.01.2021 12:45
Тогда вообще хорошо бы вынести максимальное кол-во настроек БК при старте во вне... в ini файл там, или в ключи.
И стартовые страницы, и стартовый буфер экрана, и даже палитру с рулоном...
Это не только для разработчиков полезно будет, это важно для распространения среди жильцов ЖЭКа, которые не умеют пользоваться эмулятором. Например — запуск 256 байтовых интр. Но СМК, конечно, важнее.
-
? Alexander "Sandro" Tishin@ - 24.01.2021 19:54
Спасибо, понятно. Ну, значит, пока что SMK будет работать так, как в документации. Кто не спрятался -- я не виноват. С мышью я сейчас экпериментирую -- да, есть странности разные с опросом в разных программах. Пока сделал так, чтобы ксидос работал, ну и всё остальное вроде бы понимает. Чтобы не летало, сделал множитель скорости 0,2 -- приемлемо, на мой вкус. Надо будет потом вынести в конфигурацию. А так, похоже, мало кто толком понимал, как опрашивать мышь.
¤
Ну пусть будет эквивалент MOV #5000, @#177716. Один фиг при штатном пуске это ни на что не влияет.
¤
Мне очень не хочется выносить в .ini настройки, потенциально ломающие эмуляцию (стартовый адрес и т.д.). Кто-нибудь обязательно запишет туда ерунду, всё поломается, и ура ;(
¤
Ключи -- это другое дело. Они же на виду.
¤
А рулон, например, в реале при загрузке может оказаться в любом положении. Я бы не стал на него полагаться. Лучше инициализировать ручками. То же самое касается страниц и т.д.
В общем случае, нам всё равно ничего не гарантируется. Такая вот печаль.
-
? Alexander "Sandro" Tishin@ - 26.01.2021 00:50
Чтобы не тянуть резину, выложил 0.6-alpha4
¤
Основное:
1) Джойстик теперь, как в JoyVox, но только один. Заодно переназначил гашетки на более анатомические позиции, теперь первая -- это 0/., вторая - +/Enter. Select, Start -> /, *.
2) Мышь. Пока отключить никак нельзя. В младшем байте, то есть поверх джойстика. Захват -- щелчок в окно эмулятора, отпустить -- Ctrl+щелчок. Поддерживаются две кнопки.
3) При использовании ключа -bin в режиме 11М размещение ОЗУ соответствует MOV #5000, @#177716
4) Теперь есть скриншот в Clipboard (Ctrl+F12).
¤
Ну и всякие мелочи.
¤
На очереди теперь полноэкранный режим, исправление синхронизации кадров, SMK, и запись видео. Уж не знаю, в каком порядке получится.
¤
http://sandro.pdp-11.ru/
-
? KUVO@ - 26.01.2021 06:53
Не знаю где тут ставятся лайки, но на словах скажу - это очень хорошая новость. Спасибо за поддержку такого нужного инструмента.
-
? Adam Bazaroff / Excess team@ - 28.01.2021 14:01
Супер! Большое спасибо за новую версию!!!
-
? KUVO@ - 29.01.2021 10:48
Alexander "Sandro" Tishin@ В документации не нашел упоминание о 34-м векторе перехвата команды TRAP для БК-0011. Существует ли такая возможность перехвата? И если нет, то планируется ли в новых версиях?
¤
P.S. Версия 0.6 alpha 4, мой код приблизительно такой:
¤
MOV #MYTRAP, @#34
MTPS #0
¤
...
¤
TRAP 0
.WORD PARAMETR
¤
...
¤
MYTRAP:
...
ADD (PC), (SP)
RTI
¤
При этом выходит в монитор. Хотя В gid-эмуляторе полет нормальный.
-
? Alexander "Sandro" Tishin@ - 30.01.2021 00:42
А зачем его как-то документировать? Это же стандартная инструкция PDP-11, от EMT отличается только опкодом и вектором.
¤
Вот соответствующие фрагменты кода эмулятора:
¤
//регистрация опкодов при инициализации декодера команд
// ...
register_opcode(0104000, MASK_BRANCH, OP_EMT);
register_opcode(0104400, MASK_BRANCH, OP_TRAP);
// ...
¤
// Интерпретация декодированных команд
// ...
case OP_BPT:
trap(014);
break;
case OP_IOT:
trap(020);
break;
case OP_EMT:
trap(030);
break;
case OP_TRAP:
trap(034);
break;
// ...
¤
Неясно, отчего бы ему не работать? Кстати, десяточный бейсик не работал бы, он же весь на TRAP сделан, если я правильно помню. (Или это бейсик от DEC так сделан? Подзабыл уже.)
¤
В общем, можно минимальный, 10..20 команд, тест?
-
? KUVO@ - 30.01.2021 01:35
Написал тест, можно забрать по ссылке: https://yadi.sk/d/03Jwvy-D0jXUnw Внутри исходный текст и bin-файл.
-
? KUVO@ - 30.01.2021 01:42
Запускал ^^^^ с ключом -bin, может в этом причина
-
? Alexander "Sandro" Tishin@ - 30.01.2021 06:32
Именно в этом и причина. Сейчас при загрузке через -bin машина не инициализирована никак. Соответственно SP = 0. Отчего любые попытки писать в стек приводят к Trap to 4.
¤
Если грузить из монитора командой L, то TRAPTST работает.
¤
Сделаю SP = 1000, пожалуй. Пусть будет.
¤
Выложу завтра, наверное. Сейчас мне через два часа на работу.
-
? Alexander "Sandro" Tishin@ - 30.01.2021 06:46
А нет, стек при опции -bin таки ставится куда надо. Сам же сделал и забыл уже. Буду смотреть более детально. Но не сейчас.
-
? Alexander "Sandro" Tishin@ - 30.01.2021 07:04
А, всё понял. Таймер-то при старте разрешён. MTPS #0 и поехали по таймерному прерыванию на рестарт.
-
? gid - 30.01.2021 09:01
А почему он разрешён? По схеме, по сигналу ACLO он (в том числе) запрещается инициализацией в 0 выходов триггера D35 К555Тм9
Т.е. после включения питания и после инициализационной последовательности DCLO-ACLO запрещается таймер, устанавливается отображение буфера экрана 0, и устанавливается палитра 0.
-
? Alexander "Sandro" Tishin@ - 30.01.2021 19:08
Потому, что косяк. :(
¤
Когда делал поддержку 11М, то схемы под рукой не было, так что писалось по официальной доке и по наитию. Потом перепроверить забыл.
¤
Завтра буду чинить всё.
¤
Эх, надо бы полный макет БК на Verilog собрать, и сомнительные места проверять на нём. Заодно и нормальную Э3 надо бы нарисовать и отконвертить в общечитаемый формат вроде svg. Мечты, мечты ...
-
? Alexander "Sandro" Tishin@ - 30.01.2021 19:25
Кстати, если кому интересна мышь, то просьба проверить корректность её работы. Сейчас она сделана несколько хакнутым образом, но если всех устраивает -- то так и останется на неограниченное сверху время.
-
? Alexander "Sandro" Tishin@ - 31.01.2021 15:45
gid, а это ничего, что у БК инверсная шина? Надо всё же смотреть схему. Потом посмотрю.
¤
В любом случае, выложил версию с мелкими правками:
¤
Добавлены ключи -nohud (не показывать оверлей эмулятора), -trace [address] (выводить трассу исполнения команд после срабатывания ловушки по адресу address, либо сразу), при загрузке с ключом -bin запрещены таймерные прерывания.
Если ничего из этого не нужно, то можно не обновляться.
http://sandro.pdp-11.ru/
¤
-nohud гасит оверлей только полсле получения первого отрендеренного кадра; это сделано на случай, если эмулятор зависнет при старте.
-trace пишет трассу в файл cputrace.log в текстовом виде, с дизассемблером. Параметр -- ловушка PC, после которой начинается вывод. Чтобы не дампить начальную инициализацию и т.д. Если не указано или ноль, то трасса выводится с самого начала.
Места на диске нужно МНОГО. На 11М загрузка ANDOS до появления вращающейся надписи занимает примерно 40МБ.
-
? gid - 31.01.2021 17:40
Ничего, значит я просто со всем этим ошибся, тогда выставляется палитра 15.
Для таймера всё верно.
"1" в порт 177662 ("0") на шине и выходе D35 - запретить таймер,
"0" в порт 177662 ("1") на шине и выходе D35 - разрешить таймер.
А буфер экрана значит устанавливается №1 - 6я страница
"0" в порт 177662, ("1") на шине и выходе D35, "0" на выходе D33.2 - буфер экрана 0
"1" в порт 177662, ("0") на шине и выходе D35, "1" на выходе D33.2 - буфер экрана 1
Мне не приходило в голову, что можно начинать использовать железо без его инициализации, поэтому у меня в эмуляторе всё по умолчанию устанавливается почти неправильно, так, как после инициализации.
-
? Alexander "Sandro" Tishin@ - 01.02.2021 22:06
Мне тоже не приходило. Поэтому при старте просто всё обнулялось, кроме PSW, куда писалось 340. Ну и начальный PC, само собой.
-
? Adam Bazaroff - 02.03.2021 23:09
В версии 0.5 при добавлении строки «general.debugger = yes», эмулятор висит на черном экране :(
Просьба вернуть хотя бы прежний (пусть примитивный) дебагер. Удобно было смотреть код.
¤
BK2010 emulator version 0.6-alpha-5
¤
Current date/time is Tue, 2 Mar 2021 23:07:54 +0300
Using the com.apple.laf.AquaLookAndFeel LaF as the system default.
¤
Starting up as BK0010 + BASIC
Creating a 1024x768 main window
Mouse enabled
Pixel interpolation disabled
Loading ROM file roms/monit10.rom
Loading ROM file roms/basic10.rom
Loading ROM file roms/b11m_bos.rom
Loading ROM file roms/b11m_ext.rom
Loading ROM file roms/bas11m_0.rom
Loading ROM file roms/bas11m_1.rom
Loading ROM file roms/fdd.rom
Enabling debugger mode
-
? Alexander "Sandro" Tishin@ - 03.03.2021 09:46
Не могу воспроизвести. На моей конфигурации работает. А предыдущая версия как? Есть отладчик?
¤
Или вообще старта нет? Я не совсем понял.
-
? Adam Bazaroff@ - 03.03.2021 10:57
0.3 нормально работает с текущим (см. ниже) .ini файлом. (0.4 тоже работал вроде, не сохранилась версия).
0.5 «виснет» после отображения «Enabling debugger mode» и до вывода окна с «температурой» памяти.
¤
log:
BK2010 emulator version 0.6-alpha-5
¤
Current date/time is Wed, 3 Mar 2021 10:53:27 +0300
Using the com.apple.laf.AquaLookAndFeel LaF as the system default.
¤
Starting up as BK0010 + BASIC
Creating a 1024x768 main window
Mouse enabled
Pixel interpolation disabled
Loading ROM file roms/monit10.rom
Loading ROM file roms/basic10.rom
Loading ROM file roms/b11m_bos.rom
Loading ROM file roms/b11m_ext.rom
Loading ROM file roms/bas11m_0.rom
Loading ROM file roms/bas11m_1.rom
Loading ROM file roms/fdd.rom
Audio: Opened line with 8192 bytes buffer.
¤
Enabling debugger mode
¤
ini:
diskA.Image = disks/a.img
diskA.Mount = yes
diskA.Read only = no
diskB.Image = disks/b.img
diskB.Mount = yes
diskB.Read only = no
general.Machine type = BK0010 + BASIC
general.debugger = yes
readTape.Enable motor control = no
readTape.Use tape = no
readTape.Wave = tapes/in.wav
screen.Afterglow = None
screen.Interpolate when ... = If not 1024x768
screen.Monochrome = White
screen.Multicolor = yes
screen.Screen Size = 1024x768
sound.AY-3-8910 = Enabled
sound.Covox = Disabled
sound.Filter = yes
sound.No sound = no
sound.Tape<->.bin = yes
writeTape.Enable motor control = no
writeTape.Use tape = no
writeTape.Wave = tapes/out.wav
-
? Alexander "Sandro" Tishin@ - 03.03.2021 13:58
Оба-на! Да, нашёл косяк. Спасибо за .ini, без него бы дольше возился. Починю. Но немного попозже, OK?
-
? Adam Bazaroff@ - 03.03.2021 19:16
Ок, конечно. Я пока версию 0.3 для этих целей буду использовать. Более того, если это отвлекает от работы над СМК и HDD, то я готов и дольше ждать :))
-
? Alexander "Sandro" Tishin@ - 10.08.2021 15:10
Прошу прощения за такую большую задержку. Обновление!
¤
http://sandro.pdp-11.ru/bin/bk2010-0.6-alpha6.zip
¤
Улучшен экран, исправлены некоторые баги. SMK пока ещё не работает, хотя часть функций есть.
-
? Alexander "Sandro" Tishin@ - 05.02.2022 17:51
Обновление: http://sandro.pdp-11.ru/bin/bk2010-0.6-alpha7.zip
¤
Не очень большое, из заметного -- починена мышь, починен таймер -- там был косяк с байтовой записью, который ломал новогоднюю демку.
-
? Alexander "Sandro" Tishin@ - 05.02.2022 17:53
Забыл добавить -- с ключом -flc происходит видеозапись в этом формате
-
? Alexander "Sandro" Tishin@ - 01.06.2022 18:16
Обновление: http://sandro.pdp-11.ru/bin/bk2010-0.6-alpha8.zip
¤
Теперь есть антифликер -- подавитель мерцания 50 Гц. Для демок, использующих смешение кадров для новых цветов. Включается в меню Modes & Colors.
- << Форум