-
- ? gid
- 17.10.2018 11:05
Разобрать декомпилятором явы модули на исходники (которые потом обратно всё равно не скомпилятся, но функции оттуда брать можно)
И глядя на них написать свой эмулятор на Яве. По другому никак. Издержки проприетарности.
- ? gid
- 01.10.2018 12:16
Можно ещё поизучать исходники эмуляции EIS/FIS их два варианта - дизассемблированный из ПЗУ 326 и чуточку другой вариант - исходник прилагался к ассемблеру Турбо8. Но тут мне уже не лень, а тупо некогда. В эмуляции предполагается, что результат соответствует аппаратной реализации, она ж всё равно микрокодом делалась, так что алгоритмы должны быть идентичны, что в микрокоде, что на ассемблере.
Я ведь просто предположил, как оно работает, и как бы сам реализовывал.
А как на самом деле древним разработчикам тараканы в голове нашептали, я не знаю.
Вдруг там приделали жёсткую проверку на нечётность регистра и при этом делают только правый сдвиг отдельной веткой алгоритма, а левый не делают, просто выходят с ошибкой.
- ? gid
- 29.09.2018 09:36
Кто мешает взять и попробовать на БК с эмуляцией инструкций EIS/FIS?
Мне, например, лень мешает. Поэтому я предполагаю такой алгоритм работы команды:
ASHC(rd,n)
{
t_hi = rd;
t_lo = rd | 1;
if (n<0)
{
n = -n;
while(n>0)
{
ASR t_hi;
ROR t_lo;
n--;
}
}
else
{
while(n>0)
{
ASL t_lo;
ROL t_hi;
n--;
}
}
rd = t_hi;
(rd | 1) = t_lo;
}
И по нему выходит, что если регистр-операнд нечётный, то получается не просто PDPшный ROR, ROL. А настоящий циклический сдвиг, почти такой, как на интеловском х86, когда бит С не участвует в сдвиге, а только отображает разряд, вытесненный из регистра.
- ? gid
- 25.09.2018 21:35
без комментариев бесполезно. нифига не понятно. это то же самое, что в DESS его рассматривать.
Самое сложное определить что есть аргумент адресации 27 - смещение, адрес переменной или просто какая-то константа.
Так-то листинг я могу дать хоть прямо сейчас. http://gid.pdp-11.ru/f/324_diz.rar
- ? gid
- 25.09.2018 18:53
Я и простой БОС БК11М не осилил сдизассемблировать. Несколько месяцев бился, и забросил. Хотя там код не в пример проще (в смысле понятнее) и изящнее, чем в БОС БК11, который - ужос-ужос, может вообще написан был на паскале каком-нибудь или си или фортране.
- ? gid
- 23.09.2018 20:37
[Решил инсульт до конца прогнать в 16й звука нет, в 17й пропадает через несколько секунд]
Потому что там ковоксный звук, а не AY.
- ? gid
- 22.09.2018 08:34
[проводок на B6 паять к ноге резистора, а не РРки]
Т.е. получается, резистор последовательно между B6 и микрухой? Так работать не будет.
А в интернете, даже картинка была нарисована к текстовому описанию, что куда присоединять. Резистор должен быть параллельно, подтяжкой к земле входа B6 должен быть.
- ? gid
- 21.09.2018 22:07
>>? Manwe - 21.09.2018 18:57
[Если бы там была ПЗУ, сработало бы прерывание по 4-му вектору]
Фигушки. Если ПЗУ не отключается, т.е. БКшку не модифицировали для работы с СМК, то ОЗУ налагается на ПЗУ и при записи туда, никакое прерывание по вектору 4 не произойдёт, т.к. ОЗУ выдаёт RPLY из зависания на шине нет.
А при чтении получается каша: (данные из ОЗУ | данные из ПЗУ), поэтому ничего и не работает.
¤
>>? S_V_B - 21.09.2018 20:34
[РАЗРЫВ]
это значит оторвать ногу от земли, т.е. от нуля, по умолчанию нога 23 на 0 заведена, поэтому её оттуда надо оторвать (от земли то бишь), и соединить с выводом B6 разъема МПИ, и ещё резистор 1 кОм который, одним концом будет втыкнут в землю, а другим - в ногу 23, такое без паяльника никак не делается. жвачкой или изолентой - контакт плохой будет.
- ? gid
- 19.09.2018 19:51
на zx.pk я в ветке образ тоже уже пропатченый во вложении приложил
- ? gid
- 19.09.2018 18:51
с СМК-512 даже с нажатым при включении питания Шифт-4 (клавиша с цифрой 4) не стартует?
¤
В кои-то веки нашлась какая-то непонятная фигня, которой ни у кого нет, и про которую никто не знает, и такой облом.
Что за монитор-то хоть? Он как адекватная замена оригинальному монитору БК-11 или что-то узкоспецифическое, не предполагающее никаких действий, кроме специальных, типа управления каким-нибудь ЧПУ?
¤
BD, а есть гарантии, что ОС БК 2.1 будет работать без ПЗУ БОС БК-11? может она вывод символов на экран через ЕМТ пзушные делает?
У меня поэтому были надежды именно на андос, т.к. он точно, гарантированно работает на БК10, БК11 и БК11М, на двух последних не зависит от ПЗУ.
Одна беда - пока писал это, вспомнил, в загрузчике он текст на экран выводит. И выводит как раз средствами ПЗУ. Если в П/П вывода символа на экран первым словом сделать 207, то на экран ничего не выведется, зато загрузка пройдёт успешно.
- ? gid
- 17.09.2018 12:38
Никто не знает. В этом-то вся интрига.
- ? gid
- 16.09.2018 20:16
писать/говорить "клавиша стрелка "нижний регистр"" слишком долго, язык заплетается и пальцы мимо клавиш промахиваются. проще называть её привычным и коротким именем "шифт"
- ? gid
- 16.09.2018 19:47
>>? BD@ - 16.09.2018 17:39
[СМК меняет адрес старта. в этом все проблемы.]
Там хуже. СМК на платформе БК11 делает CALL @#150170, а на платформе БК10 делает CALL @#100140 в самом начале после запуска.
Поэтому при любых ПЗУ кроме БОС БК11 и Монитор БК10 происходит чоткий зависон.
¤
Но выход есть. Если при включении питания держать нажатыми клавиши ШИФТ-4, то произойдёт горячий рестарт с адреса 140000, т.е. запуск БОС БК11.
Я всё время забываю про всякие горячие клавиши СМК, даже специальною подсказку себе написал. Только забыл, куда записал и пришлось всё заново вспоминать.
Сейчас проверил на эмуляторе, создал себе новую конфигурацию БК11 + СМК и запустил её. ШИФТ-4 => выход в БОС, 160000G и загрузился с дискеты с АНДОС.
- ? gid
- 15.09.2018 20:36
и это, чем больше версия - тем более навороченный тест и больше проверяемых моментов.
чем меньше версия - тем проще и быстрее тест.
тесты с буковкой F - тоже что и без F, только со встроенным знакогенератором, чтобы не зависеть ни от чего, ни от ПЗУ, ни от ОС.
- ? gid
- 15.09.2018 20:33
там к каждому тесту, где вводились значимые изменения есть краткое описание что к чему.
для тестов с версии 4.6 и выше описание там http://gid.pdp-11.ru/alttest_v46_info.html
про ошибки - последний пункт описания, там же почему они появляются, и почему это нормально.
- ? gid
- 15.09.2018 16:54
просто он сказал, что у него уже под рукой есть СМК, а он тоже как КНГМД сойдёт.
- ? gid
- 14.09.2018 16:24
дамп в студию. что за штука такая? посмотреть на него хочется.
- ? gid
- 05.09.2018 14:22
Вот примерно такая пдфка получилась http://gid.pdp-11.ru/f/osbk11v40.pdf
200dpi маловато конечно, мелкий текст плохо читается, особенно плохо с командами, которые набирать с клавиатуры надо, но напрягая зрение, ознакомиться можно.
- ? gid
- 04.09.2018 16:03
[что бумажных доков нет]
Вот именно. Бумажные доки - чудовищная редкость, они мало у кого есть, а у кого есть, тот нисколько не страдает альтруизмом, чтобы отсканить их и выложить как историческую ценность.
- ? gid
- 04.09.2018 16:00
ненене не надо фотать. только сканировать. У фоток потом если искажение перспективы можно исправить, то неравномерность освещения страницы хрен исправишь. и шум бывает такой, что символы потом не распознаются, и если буквы можно угадать, то числа - уже фиг догадаешься 0 там или 6, или 8 или 2.
¤
А IC не является стандартной утилитой RT-11, поэтому о ней и не упоминается. Этот документ - изложение стандартного документа по RT-11, только надеюсь с описанием особенностей и отличий ОС БК, а не просто копипаста.
- ? gid
- 04.09.2018 15:29
А где такие диски ОС БК есть? Я перелопатил все образы, которые нашёл в интернете, извлёк из них все возможные текстовые документы. http://gid.pdp-11.ru/f/rt11-docs.zip
Но вот такой брошюры там не встречалось.
- ? gid
- 19.08.2018 21:25
>>? Lasoft / Excess team@ - 19.08.2018 16:26
[ты с чем-то был не согласен, но сам же противоречишь]
Я был не согласен с выражением "частота таймера == частота процессора" потому что "частота таймера = частота процессора / 128"
Это немного разные частоты, хоть и полностью синхронны.
¤
[луч может отлавливаться теперь уже в другом месте ( до 10-ти вариантов )]
Вот так вот работает ВП1-037 и 4МГц или 6МГц частоты БК, никогда не угадаешь. Время выполнения команды зависит от того, какой была предыдущая команда (для 4МГц - 6 или 8 вариантов на каждую команду, для 6МГц - 12 или 16 вариантов на каждую команду), а её время выполнения - от того какая было до неё, и так вплоть до включения питания. А какая фаза установилась при включении ВП1-037 - зависит от рандомно инициализировавшихся триггеров внутри микросхемы. Всего 4 варианта, некоторые маловероятны, некоторые - максимально вероятны.
¤
>>? Lasoft / Excess team@ - 19.08.2018 16:42
[> Напоминаю, время исполнения MOV R0,R0 -- 2 слова пикселей.
Это не правда )]
Это правда только для 3МГц частоты процессора, для остальных частот - нет.
¤
>>? Lasoft / Excess team@ - 19.08.2018 16:51
[экран и палитры переключаются не одновременно]
Палитра переключается "абсолютно мгновенно", как только изменится значение в регистре палитры, а экран переключается синхронно с фазами работы ВП1-037
¤
>>? Lasoft / Excess team@ - 19.08.2018 17:06
[можно тут как-то редактировать сообщение?]
Нельзя. Все ошибки и опечатки сохраняются для потомков. Если их стесняетесь - просто 7 раз перечитайте своё сообщение перед отправкой.
¤
Единственно возможный вариант не зависеть от конкретного экземпляра БК - придумать алгоритм, который сперва бы или рассчитывал нужные коэффициенты, в зависимости от фазы работы, или бы добивался стабильно нужной фазы работы.
- ? gid
- 19.08.2018 10:41
[Интересное обсуждение, почему "за исключением утверждения про частоту"?]
Потому что частота таймера = частота процессора / 128.
И самый быстрый один тик таймера происходит за 128 тактов процессора, и поэтому никогда не будет возможно поймать переход, если не использовать 0-тактовую память. При 0-тактовом ОЗУ, которое не зависит от ВП1-037, можно точно подобрать команды, т.к. их время выполнения в тактах известно.
ВЕ таймер нужно запускать дважды, из-за глюка первого перехода через 0 после подачи питания.
Т.е. запустить таймер, остановить, запустить повторно. Или просто дать ему покрутиться с малым периодом, потом задать нужный и начать использовать.
А синхронизироваться лучше по прерыванию 50Гц. Потому что, когда оно происходит луч находится всегда в определённой позиции.
Т.е. запускать таймер в прерывании, тогда его отсчёт будет совпадать с ходом луча в каждом кадре, не будет плавать.
- ? gid
- 14.08.2018 19:43
см. там http://vak.ru/doku.php/proj/bk/bk-up
Оказывается Сергей Вакуленко не забросил эту штуку и пополняет всякой инфой.
- ? gid
- 14.08.2018 09:41
Во всех образах, в формате АльтПро так. Потому что это и есть формат АльтПро. В формате Самара - по-другому. Но поскольку самарских контроллеров есть всего у пары человек, а СМК - у многих, то вот так.
- ? gid
- 13.08.2018 19:42
Кодировка слетела?
Или это вопрос? Я сделал эвристический анализ вопроса "как так?" и пришёл к выводу что он был задан по поводу одинаковых чисел по заданным смещениям. Если я не угадал - сами виноваты. Задавайте чётко сформулированные вопросы, не подразумевающие многозначных толкований.
- ? gid
- 13.08.2018 16:13
Значит геометрия одинаковая. Под CFку рассчитана.
- ? gid
- 13.08.2018 14:13
[Данные идут в сторону уменьшения адресов...]
Ну вот и смотрим, данные, которые идут в сторону уменьшения адресов:
0x11fe: 0xfe15 - всего дорожек
0x11fd: 0xff - код # привода,уст.внешним драйвером
0x11fc: 0xfb - всего головок
0x11fa: 0xfffd - секторов на дорожке
0x11f9: 0xfd - # устр. для загрузки по умолч. (0 - А, 2 - С ...)
0x11f8: 0xfe - всего лог.дисков
потом начинается таблица разделов, как указано в байте 0x11f8, у нас всего один раздел
0x11f6: 0xfffe - 1 слово - номер головки (младшие 4 бита) и номер дорожки (остальные 12 бит)
если это слово < 0 (т.е. на дорожки отводится уже 11 бит.)
то раздел считается защищённым от записи.
разделы выравниваются по началу цилиндра, т.е. начало всегда сектор 1.
0x11f4: 0x0b9f - 2 слово - объём логического диска в блоках, т.е. 65536 = макс. 32Мб.
(предполагается, что каждый лог. диск начинается с первого сектора дорожки, определённой первым словом).
0x11f2: 0xf1ce - контрольная сумма таблицы разделов вместе с геометрией.
¤
Ну всё же очевидно и просто.
- ? gid
- 13.08.2018 13:34
[вы его Hex edit открывали?]
Конечно. Я всегда начинаю анализ данных с рассматривания их в hiew.
7й блок начинается с адреса 0x1000, кончается на 0x11ff.
А вот по адресу 0x11f2 начинается конец таблицы разделов, и вплоть до конца 7го блока - данные.
- ? gid
- 13.08.2018 12:16
вообще-то там чёткая структура АльтПро. BKHDDTool уверенно распознал формат МБР. Все данные на месте. Они начинаются с конца блока, а не с начала и они инвертированы. И в 7-ом блоке (8-ом секторе), не считая первые 512 байтов служебных данных HDI, в самом конце есть и таблица разделов из одного раздела и остальные параметры. BKHDDTool даже и раздел извлёк, правда поругался, что конца данных нету. Ну нету и нету, там в конце всё равно ничего нету.
Естественно в разделе нет никакой ОС за ненадобностью, там загрузчик и данные демки.
Извлечённый раздел потом можно использовать как обычный образ загрузочной дискеты. Наверное. Если там не сделана привязка к конкретно номеру привода С, тогда чуть сложнее, но тоже можно.
- ? gid
- 13.08.2018 10:23
Глянул - все первые 512 байтов образа hdi - стандартный паспорт HDD, со всеми теми данными, которые там и должны быть. Именно он выдаётся винчестером по команде IDENTIFY DEVICE (ECh) всем, кому нужно узнать параметры HDD.
Это если мы говорим об образе, который в том посте был ? BD@ - 12.08.2018 13:27
И о любом другом корректном hdi образе.
- ? gid
- 12.08.2018 19:47
[по кнопке .hdi->.img HDDImgMaker_x64.exe выдает "неожиданный конец файла"]
Там, в паспорте винта указано много цилиндров, а столько не используется, и чтобы не таскать за собой гигантский хвост из нулей, его нафиг отрезали. Потому что демка гарантированно туда не обращается.
¤
На это можно не обращать внимания, и использовать получившийся .img как обычно.
Но для эстетики я добавил окошко с вопросом чё делать в таком случае - остановиться или продолжить и дополнить образ нулями до конца.
Обновление будет осенью.
- ? gid
- 11.08.2018 17:31
[SMK и прошивка АльтПро справляется с этим несоответствием]
Вообще-то не должно. Т.к. если в паспорте HDD прописано 4 головки, а в МБР винта - 8 головок, то HDD должен выдавать ошибку при попытке прочитать что-то с 5-й головки, т.к. её нет физически.
И наоборот, если в паспорте HDD прописано 8 головок, а в МБР винта - 4 головки, то при работе с контроллером АльтПро будут использоваться только первые 4 головки и не будет доступа к остальным 4-м. И тут возможно два варианта:
1) если на винт был записан образ с использованием геометрии винта, то половина данных будет недоступна (те которые попали на головки 5..8)
2) если винт просто проинициализирован (записан МБР), а потом в разделы записывать данные уже на БК, то будет просто использоваться половина головок из доступных.
¤
Прошивка АльтПро очень примитивная, она осуществляет доступ к HDD в режиме PIO-1 (или даже более примитивному, если такой существует). Не использует данные паспорта HDD, верит на слово тому, что прописано в МБР. Осуществляет обмен данными размером строго в 1 сектор.
И перебирает сектора по одному в точности как драйвер дисковода, только с учётом того, что сторон может быть больше и секторов на дорожке - больше.
- ? gid
- 11.08.2018 17:10
будут. при условии, что вы знаете как работают эти команды. т.е. перед использованием их, вы уже зашли в пультовый режим.
- ? gid
- 11.08.2018 08:47
если геометрия реального hdd не совпадает с той, что в образе, придётся пересобрать образ под новую геометрию утилитой BKHDDTool. При этом есть недостаток - теряются резидентные модули, записанные в МБР.
А ещё USB-IDE переходники могут не поддерживать режимы работы очень старых добрых IDE HDD. Там что-то с буферизацией не то и вместо данных иногда записываются нули.
- ? gid
- 10.08.2018 21:10
Если подключен блок ИРПС, настроенный на адреса портов 176560..176566, то запись туда будет работать.
И даже всё будет корректно. потому что в ячейках 176560..176564 записаны нули, а в 176566 записано 0360.
На запись будет выдавать RPLY чип ВП1-035/065, а на чтение - сперва ВП1-035/065, а затем ПЗУ. А поскольку там нули, то мешать они не будут. А 0360 - это адрес вектора прерывания приёмника ИРПС, стандартный для диапазона 176560
¤
Так что это не ошибка. А трюк такой. Электрически корректный.
- ? gid
- 10.08.2018 20:52
Значит, что подсчёт CRC начинается с числа 012701, а не с нуля.
Посмотрите у меня в исходниках эмулятора исходники утилиты BKHDDTool, там комментариев больше, и она как раз для разборки-сборки образа hdd. Там самое ценное - манипуляции с МБР и разметка диска.
- ? gid
- 09.08.2018 16:28
[.hdi -> .img для CFки, просто рубить 1(0) сектор и всё?]
Да. Для не умеющих это делать вручную, в утилите HDDImgMaker даже добавлена специальная кнопка.
¤
[написать на РС тулзу для перемещения/увеличения разделов]
Я кстати такую очень давно написать хотел. Но упёрся в интерфейс. Я не умею такие штуки делать, чтобы мышкой туда-сюда границы перемещать и раздел как надо менялся, а исходников, чтобы в них подсмотреть, как это делается, в интернете не нашёл.
¤
Если кто-нибудь мне подкинет исходники интерфейса на Си, такие в которых можно разобраться, я такую тулзу смогу написать. даже интегрирую туда BKDE, чтобы можно было на конкретный лог.диск файлы закинуть, удалить, заменить.
- ? gid
- 02.08.2018 11:51
2 HDD не распознаёт ПЗУ АльтПро контроллера СМК, соответственно ни одна ОС, которая его использует тоже не распознаёт 2 HDD.
Нужно пользоваться сторонними средствами. Среди дискет со всякими сервисными программами была какая-то прога, которая понимала 2 HDD и позволяла копировать данные с одного на другой.
Правда, как оно работает, я не проверял. Я даже не проверял, корректно ли эмулятор эмулирует два ATA IDE канала. Потому что до практического использования реальных HDD на реальной БК дело у меня так и не дошло.
- ? gid
- 26.07.2018 11:13
так эта, там же и скачать. В описании к видео есть ссылка на www.pouet.net, а там уже есть ссылки на саму демку.
- ? gid
- 12.07.2018 19:51
Общераспространённая информация о плавающих числах бейсика такая - http://gid.pdp-11.ru/books/programming_BK10.html#__RefHeading__218
так получается, что double сделано не по стандарту IEEE754. у него порядок такой же как у float - 8 бит вместо 11. А одинарная точность из двойной делается тупым отбрасыванием младших битов мантиссы. Я когда смотрел исходники MACRO-11, чтобы узнать, как оно с плавающими числами работает, увидел такую фигню, удивился, и решил отложить всё это на время, пока что-нибудь не прояснится.
Вот там, http://gid.pdp-11.ru/books/dvk/dvk3_ch1.html#cha1.7.3.7 в описании команд MACRO-11 тоже даётся формат float и double. и у обоих порядок по 8 бит. Так что корни растут оттуда.
¤
Вот, кстати, ходили слухи, что в бейсике БК-0011 (без М) плавающие числа с двойной точностью были несовместимы плавающими числами с двойной точностью от бейсика БК-0010, как раз из-за того, что в бейсике БК-0011 double было сделано правильно, с порядком 11 бит.
Поэтому те, кто грузил .cod файлы имели разного рода глюки с числами.
- ? gid
- 05.07.2018 16:32
[Нет, я про симуляцию этих приоритетов.]
У 1801ВМ1 делать 8 уровней приоритета просто бессмысленно, там просто нечего приоретизировать. Разве что можно попробовать запрещать/разрешать не всё скопом, а по отдельности (IRQ2, IRQ3, VIRQ). Но источников прерываний всё равно мало, так что тут большой простор для фантазии и разных комбинаций.
напр
7 - запрещено всё (IRQ2, IRQ3, VIRQ)
6 - разрешено IRQ2, запрещено IRQ3, VIRQ
5 - разрешено IRQ3, запрещено IRQ2, VIRQ
4 - разрешено VIRQ, запрещено IRQ2, IRQ3
3 - разрешено IRQ2, IRQ3, запрещено VIRQ
2 - разрешено IRQ2, VIRQ, запрещено IRQ3
1 - разрешено IRQ3, VIRQ, запрещено IRQ2
0 - разрешено всё (IRQ2, IRQ3, VIRQ)
¤
или один бит приоритета запрещает одно какое-то прерывание, их как раз три.
Но это полностью ломает всю совместимость.
¤
[где не проверяется bNoPriority]
прерывание не маскируется битом 7, поэтому от него не зависит.
[А в случаях с прерыванием от таймера и прерыванием от внешнего устройства (priority 6) и VIRQ (priority 7) нужно смотреть на приоритет]
и если случилось так, что одновременно пришёл запрос на прерывание IRQ2 и VIRQ, то смотрим таблицу приоритетов, и видим, что у VIRQ приоритет ниже (т.е. чем больше номер в таблице, тем ниже приоритет, не знаю кто это придумал, но это так).
Поэтому сперва обработается запрос на прерывание IRQ2, а затем, сразу после него VIRQ (если ничего не случится при обработке IRQ2).
И вообще в этой таблице указан арбитраж, как разруливается конфликт, когда приходит несколько прерываний одновременно. А не то, что делается в зависимости от приоритета проца.
¤
[А если у проца приоритет 5]
У проца нет приоритета 5, у него приоритет или есть или нет.
- ? gid
- 05.07.2018 15:06
Не вешали, а были недостаточно проинформированы.
¤
Про прерывания точно и достоверно написано там (таблица на стр. 55)
http://u.zeptobars.ru/yuot/1801/VM1/DOC/1801vm1-17-Jun-2018.pdf
Также там написано что их маскирует. Правда приоритеты там расставлены с аппаратной точки зрения, а не логической, в которой 8 или 7 уровней.
¤
У меня, bNoPriority - инверсный бит 7 PSW, который означает, что данное прерывание может быть им замаскировано, но вот если прямо сейчас не замаскировано, то условие if истинно и тело if выполняется.
¤
Кстати, насчёт ВМ2 я ошибся, там тоже приоритет всего один бит 7.
¤
[если делать полноценные 7 уровней]
то не сравнивают приоритет PSW прерывания, чтобы узнать, прерываться на него или нет, а маскируют саму возможность возникновения прерывания. Т.е. нужно делать несколько разных входов например векторных прерываний и в зависимости от текущего уровня приоритета, разрешать или нет прерывания на одних входах и не разрешать на других.
¤
Например в ВМ3, в котором всё таки уже 3 бита под прерывания задействовано, они маскируют прерывания на линиях IRQ3-IRQ0
И вообще в ВМ3 больше источников прерываний и поэтому там просто одним битом не обойтись.
- ? gid
- 05.07.2018 11:59
Да. Вот так это так. Видимо пилили, но не допилили, и оставили для совместимости с остальными PDP-11 совместимыми процами. чтобы софт не переписывать. Биты 5 и 6 просто висят в воздухе, они доступны для чтения и записи, но совершенно ни на что не влияют.
Это только у 1801ВМ1. У ВМ2 и ВМ3 уже нормальный 8-ми уровневый приоритет.
- ? gid
- 02.07.2018 19:13
Забыл про CIS написать.
Обычно, CIS - это заказные инструкции. Применяются в заказных специфических процессорах, которые делались ограниченными сериями. И заказчик обычно не раскрывает данных об этих инструкциях, что это и зачем они нужны. К тому же, одни и те же опкоды в разных изделиях могли иметь разные функции.
Откуда взялись те инструкции CIS, уже не помню, но кажется из какой-то документации на какие-то процессоры LSI.
- ? gid
- 02.07.2018 15:22
описание
170003 LDUB
170004 LDSC
170005 STA0
170006 STB0
170007 STQ0
нашлось там: http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/1170/EK-FP11C-MM-01_FP11C_May76.pdf
Только там всё начёркано ручкой и ссылаются на FP-11B (это PDP-11/45) но его описания что-то не нашлось.
- ? gid
- 02.07.2018 14:52
Описание инструкций CSM TSTSET WRTLCK можно найти в книге http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/1193/EK-KDJ1E-UG-001_KDJ11-E_CPU_Module_Users_Guide_Jan91.pdf
CSM - call to supervisor mode
TSTSET - Test and set (low bit interlocker)
WRTLCK - write interlocker.
¤
А с инструкциями 17000х труднее, это какие-то инструкции управления самим FPU и то ли они какие-то специфичные, только для каких-то конкретных реализаций FPU, то ли очень секретные, но для них, ничего, кроме мнемоники найти не удаётся.
¤
Однако я просто не осилил чтение всех хандбуков и гуидов для всех пдп процессоров по ссылке http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/ , может, где-то там что-то и найдётся.
- ? gid
- 14.06.2018 19:03
Если вообще никак ни в WaveOut, ни в DirectSound ничего не отправляется, то естественно, звук никак не влияет на синхронизацию.
¤
[Я просто не пойму какие таймер вносит задержки, если поставить точное время?]
Я тоже не пойму, что вносит задержки. Но если поставить точное время, то когда слушаешь AYшную музыку запинок больше, чем если сделать время немного меньше.
Я потому и по-всякому долго экспериментировал с этими таймерами - меня очень раздражали эти запинки, когда слушаешь музыку.
Победить их я так и не смог, поэтому забил на это дело, пока кто-нибудь не подскажет, как улучшить ситуацию.
¤
[И почему сделан периодический таймер]
Потому что выставил один раз период, и всё, он сам срабатывает. А в однократном, надо каждый раз выставлять период, чтобы запустить таймер - лишняя операция.
¤
[там точно не получится отсчитать]
Windows и точно - понятия не совместимые. Как ни извращайся, точно всё равно не получится, так что если будет хоть примерно точно, уже хорошо. Тем более, что у этого WaitableTimera минимальный квант времени 1мс. И погрешность такая же.
- ? gid
- 14.06.2018 16:13
Не точнее, а просто менее затратный. Синхронизация то всё равно по звуку делается. Звуковые буферы отправляются на звучание строго за заданные моменты времени.
А в этом цикле все эти таймеры нужны на случай, если в системе не будет вообще никакого звукового железа.
- ? gid
- 14.06.2018 14:09
Я от QueryPerformanceCounter давно отказался. Как раз из-за того, что там считать много надо, а толку нет.
¤
А с длиной фрейма я время от времени играю. Он у меня то 40 мс, то 20 мс. В разных версиях сборки.
-
«
1 | ... | 9 | 10 | 11 | ... | 15 | »
?