-
- ? gid
- 30.01.2021 09:01
А почему он разрешён? По схеме, по сигналу ACLO он (в том числе) запрещается инициализацией в 0 выходов триггера D35 К555Тм9
Т.е. после включения питания и после инициализационной последовательности DCLO-ACLO запрещается таймер, устанавливается отображение буфера экрана 0, и устанавливается палитра 0.
- ? gid
- 29.01.2021 12:26
Оно выводится, но нигде не сохраняется.
А тут придётся сперва сохранить массив памяти, потом сохранять набор "шагов" (выполнение одной команды) и содержимое регистров, так сказать снапшот состояния после каждой команды, придумать формат всей этой сложносоставной структуры, а потом ещё придумать плеер всего этого, и как-то умудриться состыковать это с функционалом эмулятора, избегая взаимоисключающих требований.
Я вот так вижу это. Слишком сложная задача для меня.
Лучше я сделаю простой дизасемблерный текстовый лог выполняемых команд. Я уже делал это в своём потактовом эмуляторе 1801ВМ1 на основе верилога.
Количество строчек в нём получается многие тысячи, вес - мегабайты. И найти там что-то сложно, но можно.
- ? gid
- 29.01.2021 09:57
А вот это невозможно, т.е. я вообще не представляю, как это делать.
- ? gid
- 28.01.2021 20:14
Технически такая возможность есть.
Patron когда-то поделился потоковым дизассемблером, который пишет в лог все инструкции, выполняемые процессором, и прочие сопутствующие аргументы и атрибуты.
Подумаю над тем, как его прикрутить, и когда-нибудь сделаю. Но не скоро.
- ? gid
- 21.01.2021 20:34
Обновление откладывается. Обнаружил ещё одну неприятную ошибку в загрузке сохранений. Если частота дискретизации звука в загружаемом сохранении отличается от текущей, начинаются эпические глюки. Раньше такой фигни не было, значит я когда-то недавно её внёс.
- ? gid
- 20.01.2021 14:26
Грустно. Он криво работает, и как эту ситуацию поправить, я вообще без понятия. Вскоре выложу обновление, и сами в этом убедитесь.
- ? gid
- 19.01.2021 16:21
Нашёл ошибку. Там файл образа винчестера не освобождался эмулятором, когда нужно было. Поэтому заново открыться не мог. Но после, когда уже не нужно - освобождался. Поэтому ровно через раз и работало.
Добавил костылей, теперь прям от души пять раз освобождает файлы, и два раза, а при загрузке конфигурации аж три раза, запускается инициализация HDD и открытие файлов. И главное, хрен этот говнокод исправишь.
Скоро обновление выложу.
- ? gid
- 18.01.2021 15:35
Не пробовал. Я не умею работать с цветом, а обрабатывать сканы вообще не умею, если там не что-то простое. Знаю только, что если такие страницы обесцветить, сделать серыми, и потом пытаться обрабатывать - будет только хуже, потому как на эту граблю наступал уже.
- ? gid
- 18.01.2021 12:52
Зачем? есть большой файл без обработки 39мб, где всё нормально.
Да я и не запоминал, просто пролистал по-быстрому, увидел артефакты и стёр неудачный результат обработки.
Там причина в том, что у вашего сканера подходит к концу ресурс сканирующей линейки, и из-за этого пятнистый фон страниц получается. Где красноватый, где желтоватый, где синеватый. Поэтому обработку таких страниц в автоматическом режиме как делал я, делать нельзя, т.к. с высветлением фона, одновременно высветляются граничные пиксели из букв того же цветового интервала, что и фон. Там надо творчески к делу подходить.
- ? gid
- 17.01.2021 12:21
Думаю, что это из-за того, что не сохраняются регистры HDD.
Я обычно делал сохранение состояния, когда не было никакой дисковой активности.
Хотя, может быть и не из-за этого.
- ? gid
- 17.01.2021 12:17
Ссылка на ядиск из поста [gid - 15.01.2021 08:12] больше не работает, кому надо, скачать можно со страницы сайта http://gid.pdp-11.ru/doclist.html
маленький djvu с осветлённым фоном станиц удалён, т.к. оказалось, что в некоторых местах текст стал нечитаемым. Вредительство получилось.
¤
Spiridon, лучше б дали ссылку на прогу, которая бы имела одну кнопку - "Сделать пиздатый pdf" и чтобы сама из кривых, косых, размытых, с чёрным фоном даже не сканов, а фотографий страниц, делала красивые ровные и главное, хорошо читаемые страницы.
А то, чтоб сделать хоть как-то хорошо, приходится каждую такую страницу вручную обрабатывать, а если их несколько сотен, то энтузиазм быстро иссякает, особенно когда из тёмного фона не получается буквы выделить, они притворяются элементами фона и тоже высветляются.
- ? gid
- 15.01.2021 08:12
Вот что получилось: https://yadi.sk/d/KU_zWkpdceRWFA?w=1
это директория, там три файла:
focal.pdf (112mb) - страницы как есть, цветные, без обработки, сжатие jpeg с минимальными потерями.
focal.djvu (39mb) - то же самое, но ещё и со сжатием без потерь (якобы. Так написано в профиле сжатия было).
focal_b.djvu (23mb) - после простой обработки с осветлением фона страниц в автоматическом режиме, из-за чего местами и качество текста слегка пострадало, буквы тоже осветлились.
В общем никак не умею делать компромиссные файлы минимального размера при максимальном качестве.
- ? gid
- 13.01.2021 09:09
И это, не проще ли архивом на файлообменник положить? Пусть заливать/сливать дольше будет, зато один раз.
- ? 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
Но оно гораздо более непонятно. по крайней мере мне. Его тоже инопланетянин писал.
¤
Кстати насчёт мыши. Есть какой либо способ, чтобы согласовать скорость движения реальной ПКшной мыши и мышиного курсора в БКшной проге в эмуляторе, который эмулирует марсианку?
А то у меня фигня какая-то получается. В ксидосе курсор мгновенно летает от одного конца экрана к другому просто от малейшего касания к мыши. В других прогах, поддерживающих мышь - курсор еле ползает, а ПКшной мыши даже стола не хватает для движения.
Насколько я помню, на реальной БКшке с мышью марсианкой такой фигни не было.
- ? gid
- 13.01.2021 08:14
Нормально всё. Почти. Давайте остальное.
Там просто на развороте местами буквы слегка размытые. И дальше, к середине книги, может стать только хуже. Если книгу не жалко, её можно сломать, чтобы прижим был лучше.
- ? gid
- 12.01.2021 19:59
Я могу собрать картинки в pdf. Но как оказалось недавно, я не умею выправлять качество плохих сканов и вычищать их, поэтому могу собрать в том виде, как они есть. Сканы, надеюсь, в как минимум 300 dpi?
- ? gid
- 27.12.2020 14:59
[Жаль, что нельзя автоматизировать загрузку драг-н-дропом в 11м.]
Вообще-то можно. Нужно только поднапрячься и написать эмуляцию драйвера магнитофона. Просто она на порядок сложнее, чем 10ке. (В смысле соблюдения условий работы. А ещё там страницами манипулировать надо.) И у меня не хватает духа и моральных сил сделать это.
- ? gid
- 27.12.2020 14:54
>>Alexander "Sandro" Tishin - 27.12.2020 11:22
1. никак, про это речи не было. Хотели ZX TurboSound, а в нём тоже количество и наличие AY не определяется программно.
2. классика. Как нацепили изначально на этот порт, так и живём.
3,4,5 и тд. SuperMax этим уже занялся и всё сделал https://zx-pk.ru/threads/32102-az-dlya-bk-0011m.html
Я же, как и положено нищеброду, делаю из говна и палок и из того, что найдётся под рукой. Сейчас нашлась схема подключения из ПК БК №1,1995 по которой я когда-то подключил YM2149 к БКшке и немного разных старинных микросхем.
¤
>>Adam Bazaroff - 27.12.2020 13:01
[Можно как-то сделать]
Наверное как-то можно. У меня с наскока не получилось, чтобы две программы открывали один и тот-же файл для записи. Ну я и забил на это. Т.е. есть такие флаги, которыми задаются параметры открытия файла. Но у меня почему-то поведение отличалось от того, что писалось в описании этих флагов.
А ещё я хотел добавить в выпадающее меню для приводов пункт, чтобы открывать текущий образ в BKDE. Но так и не придумал нормальный алгоритм, как там должно происходить отмонтирование образа, и как узнать, что BKDE закрылось и образ нужно примонтировать обратно, и должно ли это делаться асинхронно, или эмулятор на это время нужно приостанавливать.
А пока я не представляю алгоритма, я и запрограммировать ничего не могу.
- ? gid
- 26.12.2020 16:38
Протестировать можно и без плеера. Просто программа, которая будет в писать данные в регистры, и смотреть осциллографом и слушать ушами, что происходит. На новогодние праздники, если найду детальки, соберу макетку и проверю, если второй AY окажется исправным.
Ну или если кто-нибудь другой проверит вперёд меня.
- ? gid
- 26.12.2020 08:33
Нету этого в интернете. Либо оно хорошо запрятано и про это все уже забыли.
У вас похоже более поздняя редакция документа с расширенным списком типичных неисправностей и их устранения.
Вообще говоря, даже та документация, что есть, стала достоянием общественности с помощью довольно существенных усилий.
Конечно выложить.
- ? gid
- 25.12.2020 09:54
turbosound просто так без переделки в БК не воткнуть. А раз всё равно переделывать, то уж сделать по-своему.
Вот, набросал примерную схему подключения двух Ay, как я себе это представляю.
https://yadi.sk/i/86PaZHXewI3Lig
За основу взята классическая схема подключения, опубликованная в журнале ПК БК №1,1995 и модифицированная Mdesk (если я ничего не путаю).
Правда не уверен в том, что будет работать, т.к. нужно собрать её и проверить идею. А у меня есть только один YM2149 и один клон AY-3-8910 от winbond в неизвестном состоянии исправности.
- ? gid
- 23.12.2020 12:47
Да всем насрать. Предлагаю то, что предложил уже. Это:
1) обратно совместимый метод, так же просто работать с точки зрения программирования.
2) легко реализуемый в железе.
- ? gid
- 22.12.2020 19:12
[купите маленький старый телевизор]
Вот-вот. Это и есть главный минус. Надо обязательно покупать что-то со скартом. А между тем, наверняка у многих, кому было жалко выбросить, лежит и пылится уже давным-давно, в стародавние времена купленный 15,17,19" LCD моник. У меня аж два. LG 17", которые умеют только 60 и 75 Гц.
[и сделать таки нам нормальное подключение по VGA к ЖК мониторам]
Всё уже сделано. Как ни решай задачу, всё равно в результате получится ещё один аналог или GBS, или OSSC или Framemeister. За такие же деньги.
- ? gid
- 22.12.2020 14:20
svinka, это было бы решением, если бы было навалом LCD MULTISCAN MULTISYNC мониторов.
А так, это нишевый продукт будет, для тех, кто может себе позволить найти такой моник.
- ? gid
- 22.12.2020 10:23
zx-pk.ru живее
- ? gid
- 22.12.2020 10:22
Повезло. У меня, например, GBS-8220 вообще нормально не показывал на простом старом LCD мониторе ни в цвете ни в ЧБ. Картинка дрыгалась и была сильно мутная. Помогла только модификация gbs-control, инструкции там: https://forum.pk-fpga.ru/viewtopic.php?f=36&t=5424
С ней стало чётко всё и в ЧБ и в цвете.
И там же можно узнать, что есть лучшее решение - OSSC, но для него нужно монитор/ТВ с хорошим разрешением. Что мне, например, не подходит.
Мне нужно наоборот, чтобы можно было использовать старые 17" и 15" LCD панели в качестве монитора для ретрожелеза.
- ? gid
- 08.12.2020 10:24
Ну да, все параметры HDD, которые хранятся в сегменте 7 нулевой страницы становятся недоступны и всё идёт наперекосяк.
В коде прошивки есть такое:
; перед собственно началом операции с HDD
CALL CRC ; проверяется целостность таблицы разделов в сегменте 7
SUB -(R1),R2
BEQ L11 ; и если КС совпала - целостность не нарушена, идём далее читать/писать.
; а иначе - заново делается попытка чтения таблицы разделов (8-го сектора МБР) в 7й сегмент - тут портятся данные пользователя, которые он неосмотрительно поместил в этот сегмент.
CALL PARTRD ;чт.табл.разд.и CNF
MOVB #13,ERRNUM(R3) ; а потом делается выход из п/п 160004 с ошибкой 13.
EX11: BR EX1
¤
А в п/п READ2 при любой ошибке делается переход по адресу 140000, а в данный момент там находится не ПЗУ БК11 а страница СМК, в результате - зависон или неопределённое поведение.
А надо проверять номер ошибки, и если 13 - то повторить чтение, и если снова ошибка, на этот раз любая, то выход.
¤
А вообще - как показала практика, разработчики контроллера даже не предполагали, что кому-то придёт в голову читать данные с винчестера напрямую в память СМК. Предполагалось всегда читать в ОЗУ БК и потом перемещать в ОЗУ СМК.
¤
И поправка: страница с кодом 2000 используется не драйвером альтпро, а альтбиосом для своих нужд. Но самим альтбиосом никто не пользуется.
¤
По-быстрому набросал проверочную прогу из вышеприведённого кода, и она у меня не работает ни в пошаговом режиме, ни в непошаговом. Так что всё нормально.
- ? gid
- 07.12.2020 21:53
Со всеми остальными четырнадцатью страницами то же самое? или только со страницей с кодом 2000?
Нужно больше кода, из того что приведено, совсем не ясно, какая БК, 10 или 11?, чем грузится файл? средствами БОС БК11, МКДОСом, Андосом и тп? Или своим собственным драйвером? И откуда? с дисковода или с HDD?
Страница с кодом 2000 используется драйвером альтпро для своих нужд.
- ? gid
- 07.12.2020 14:08
Я не знаю как. Знал бы - сделал бы.
- ? gid
- 04.12.2020 09:30
Будет норм, только стерео не нужно. Нужны файлы с одним, двумя и тремя голосами в одном канале, любом, левом или правом - не важно.
Причём нужны как звучащие в унисон, это чтобы посмотреть, меандры генерируются со сдвигом или нет, и звучащие аккордом, допустим в каждом счётчике CDEFGAB разной октавы.
И желательно было бы на реальном железе смотреть осциллограмму в точке, где микшируются выходы счётчиков, где все 3 резистора соединяются. Или звук брать оттуда, чтобы конденсаторы фильтров обойти.
- ? gid
- 04.12.2020 08:01
>>? grf@ - 28.11.2020 07:04
[Заметил странную вещь - если запущен эмулятор и комп гасит монитор (если долго стоит без касания клавы), то звуковуха наичнает яростно скрипеть, трещать.]
Это неизлечимая фича. Скрип, треск, и скрежет появляется когда ФПС падает до значения примерно 20 и меньше. А фпс в этом случае может падать, когда диспетчер процессов винды решает, что эмулятору надо бы отдавать поменьше ресурсов и времени, т.к. он становится фоновым приложением.
А эмулятор такого к себе отношения не понимает, он всегда и постоянно работает и жрёт процессорные ресурсы. И в звуковуху постоянно выводит звук, даже когда ничего не звучит, он выводит тишину, т.к. по звуковым буферам синхронизируется с реальным временем. И вот когда между выводами звуковых буферов появляются паузы и разрывы - получается треск.
- ? gid
- 03.12.2020 20:00
Я руководствуюсь такой терминологией - в микросхеме i8253 три счётчика, в менестреле две таких микросхемы - по одной на стерео каналы.
Ну там получается по три счётчика на канал, т.е. счётчики 1,3,5 (голоса в терминологии разработчиков менестреля) - правый канал, 2,4,6 - левый.
Я тоже тестирую эмуляцию в эмуляторе, и это синти работает так - оно каждый счётчик программирует последовательно. т.е. значения счётчиков заносятся последовательно в счётчики 1..6. При этом БКшка медленная, пока она задаст значение второму счётчику, первый уже успевает сколько-то отчитать, пока задаст третий - первый и второй опять уже отсчитают сколько-то и т.д., поэтому генерация меандров всеми счётчиками одного канала получается со сдвигом относительно друг-друга. Причём довольно большим, больше чем частота нот 7й октавы. В результате многоголосие у меня не работает как надо.
Вот мне и хотелось услышать звучание реального менестреля. И если там не так, нужно разбираться, что я делаю не так.
- ? gid
- 03.12.2020 12:58
Shestipalov, кстати вопрос такой, на этом аудиофайле звучат все счётчики всех каналов одновременно или по одному на каждом?
Просто у меня сейчас счётчики одного канала работают со сдвигом в 1184 такта относительно друг друга, из-за чего звук получается совсем не такой, как должен был. И микширование пока просто сложением амплитуд, из-за чего вместо нормального меандра получаются пирамидки.
Я не знаю, это нормальное поведение i8253 или это такая косячная эмуляция. Нужна двух и трёхголосная мелодия, чтоб было к чему стремиться.
- ? gid
- 01.12.2020 15:08
Если заставить звучать один счётчик а канале, ещё хоть что-то более-менее получается, хотя и на самых высоких частотах начинается какая-то непонятная хрень. А вот микс из двух/трёх счётчиков - получается жопа. Что-то плохо получается приспособить эмуляцию из МАМЕ.
Так что пока ничем порадовать не получится. И идей, что делать и как это исправить, пока нет.
- ? gid
- 26.11.2020 14:46
Итак, черновой набросок менестреля готов. По крайней мере, пример: "Запустим 440Гц в 0 счетчике обоих каналов." что-то гудит.
Теперь нужно программу, которая бы что-то играла или использовала какие-то особые возможности менестреля, и аудиофайл того, что при этом звучит из реального менестреля. Для отладки.
Можно даже какую-нибудь мелодию, набранную в редакторе Синти.
И пока не придумал как из порта УП прерывания по вектору 100 делать. В эмуляторе такого функционала нет в принципе.
- ? gid
- 20.11.2020 13:56
Спасибо. Удивительно, что хоть кто-то читает документацию.
- ? gid
- 09.11.2020 19:33
Если сумею сэмулировать 8253, то будет менестрель, если не сумею - то не будет.
Пока что нашёл единственный пример эмуляции в MAME. А оно сложновато для восприятия.
- ? gid
- 09.11.2020 14:51
А вроде же была информация, что менестрель подключается к разъёму МПИ, и в нём было своё ПЗУ. Или это какой-то другой менестрель?
- ? gid
- 09.11.2020 13:30
[Возможен ли вариант эмулятора с англоязычным интерфейсом?]
Теоретически возможен. Если кто-нибудь захочет приложить к этому усилия.
Я думал однажды над локализацией на другие языки, а потом ещё раз подумал, и передумал. Пусть этим займётся тот, кому нужнее.
¤
[А еще лучше, такой вариант эмулятора, который бы просто запускался с указанным образом диска и ничего не показывал, кроме экрана и виртуальной клавиатуры?]
Вид пользовательского интерфейса настраивается самим пользователем. Если он захочет, то сам сможет отключить ненужные элементы, и расположить нужные в том виде, как ему захочется.
А вот чтоб запускался с указанным образом, можно попробовать сделать, там как раз функционал обработчика параметров командной строки нужно переделать, вот и стимул будет.
¤
[Есть ли возможность её эмулировать, и что для этого надо?]
Есть ли возможность, не известно, потому что нет в публичном доступе ни схемы её, ни технического описания, ни вообще никакой документации, даже руководства пользователя нету.
Будет или схема, или достаточно подробное ТО, из которого будет понятно, как оно устроено, тогда и можно будет рассуждать, есть ли возможность её эмулировать или нет.
- ? gid
- 03.11.2020 19:43
Ну, zx-pk я тоже часто смотрю, просто мне пока сказать нечего. И повода нету.
- ? gid
- 03.11.2020 08:05
А зачем писать? ARM же, всё уже написано. Достаточно быть качественным потребителем и потреблять продукцию китайцев и индусов.
- ? gid
- 16.10.2020 18:13
там же не просто надо бит в регистре 1F6 устанавливать, там ещё и команду подавать надо, код команды - самое главное, а содержимое регистра 1F6 - это входной параметр. И надо смотреть описание для команды - что она принимает и что возвращает в регистрах.
Вот кому-то нравится команда EXECUTE DRIVE DIAGNOSTIC, он её использует.
А кому-то SOFT RESET, судя по описанию, SOFT RESET в процессе всё равно делает EXECUTE DRIVE DIAGNOSTIC кроме каких-то своих действий (обнуление регистров и ещё что-то).
И у этих команд в результате будет свой специальный код ошибки, который возвращается в регистре 1F1. Там не по битам статуса определяются.
- ? gid
- 09.10.2020 21:30
[Возможно ли сделать настройку «разнесение каналов AY в пространстве»]
Возможно. Но для этого придётся сделать ещё одно диалоговое окошко, коих что-то начало плодиться сверх меры.
¤
[Я заметил, что интерфейс эмулятора сохраняет какие-то Настройки в реестр.]
да, это какое-то стандартное поведение стандартного приложения виндовс с пользовательским интерфейсом, реализуемым посредством MFC.
Перехватывать обработчики этого функционала и обрабатывать по-своему я счёл слишком сложным и непонятным. Тем более, что примеров в интернете не нашёл.
Эта падла хранит в реестре вообще всё, даже размещение тулбаров, и читает их оттуда, а не из программы, так что, когда я что-то меняю в них, приходится извращаться и удалять определённые ветки реестра, я для этого даже специальную функцию, проверяльщик создал.
А то новые кнопки или не появляются вообще, или иконки сбиваются.
¤
[Как мне быть, если я, скажем хочу свои Настройки интерфейса передать на другое устройство?]
Пока кто-нибудь не подскажет, как делать по-другому и правильно, то да, только экспорт ветки реестра и импорт её в другом месте вручную. Хотя и этот процесс можно автоматизировать, нужно только научиться экспортировать данные из реестра в файл и импортировать их обратно. Причём, чтобы это было именно то, что нужно, а не что попало постороннее вредоносное.
- ? gid
- 01.10.2020 19:34
Если нужен именно тот самый драйвер, который устанавливается сервисными прогами АльтПро, то в этом архиве http://gid.pdp-11.ru/src/altpro_service_src.zip есть Исходники сервисных утилит для контроллера АльтПро СМК для работы с жёстким диском, в том числе setmbr - дизассемблированный исходник программы для установки/удаления резидентных модулей в MBR жёсткого диска в формате АльтПро, в нём исходники fis/eis как они есть.
- ? gid
- 24.09.2020 19:12
Не надо ничего править, В ПЗУ все операции делаются корректно по алгоритму - mov #6... mov #code... mov #0...
Т.е. после себя оно оставляет всё в целости и работоспособности.
И всем остальным писателям, тоже следует придерживаться этого метода. Тогда ничего не будет глючить. Кстати, в числе 6 тоже есть бит 2 и после записи строба в регистр, он тоже отключается по чтению, но потом туда записывается код режима+страницы, и никто ничего не замечает, а потом, если вдруг забыли сбросить бит 2, начинаются сюрпризы.
- ? gid
- 23.09.2020 20:00
[Вроде, недавно правили прошивку СМК ради этого. Обнаружили, что не работает Бейсик.]
Правили, как раз добавили функционал с отключением регистров 177130, 177132 по чтению битом 2, а то они вообще не отключались и бейсик не работал. Я и правил, получилось как в оригинальном СМК-64, во всех случаях, а не только в режиме 20, как написано там https://forum.pk-fpga.ru/viewtopic.php?f=15&t=492
Серьёзные правки в прошивку внести невозможно, т.к. плата уже разведена и ноги ФПГА уже жёстко заданы. Поэтому когда не хватало то ячеек, то маршрутов, квартус всё советовал перераспределить назначения ног, чтобы нужные ресурсы высвободить, а вот фиг. Пришлось ограничиться самым минимумом.
- ? gid
- 23.09.2020 08:43
[На pk-fpga есть "ПОДРОБНОЕ техническое описание контроллеров АльтПро"]
Это и есть документация, + есть ещё схема электрическая принципиальная, из которой можно узнать нюансы работы.
¤
[недокументированная функция СМК: не все страницы работают одинаково.]
Это не недокументированная функция, это наследственная фича. Я всё время про это забываю, У СМК осталось ещё от контроллеров А16 такая штука: установленный бит 2 в 177130 отключает регистры 177130, 177132 по чтению, до тех пор, пока бит 2 не будет сброшен. Это было нужно для работы Бейсика на БК10, и так оно и осталось.
Причём, где-то, в какой-то документации это упоминается, так же как и бит 3, который на БК10 подключает ПЗУ Бейсика, Причём на старых оригинальных СМК-64 этот бит 3 работает, а на старом прототипе СМК-256 и репликах СМК-512 этот функционал уже не реализован.
¤
так что когда я говорил что "последняя команда - очистка регистра 177130 вообще не нужна", я как обычно ошибался, она нужна, и в том числе и для того, чтобы очистить этот бит 2, если он будет установлен каким-то кодом страницы. Правда я через два дня снова забуду про этот бит 2 и снова стану говорить, что регистр можно не обнулять, пока снова не наткнусь на незапланированное поведение, тогда снова вспомню, и так бесконечно.
¤
Так что, использовать можно ВСЕ страницы, просто нужно при установках режимов для записи в 177130 использовать ТОЛЬКО команду MOV и больше никаких других команд. И если жалко двух слов, то для обнуления можно использовать какое-нибудь подходящее значение регистра, где младшие 11 битов равны нулю, а остальные - не имеют значения
- ? gid
- 21.09.2020 18:55
ну в документации же написано, что нужно использовать mov #0,@#177130 и нельзя использовать clr @#177130, как раз потому, что регистр 177130 в некоторые моменты по чтению не доступен.
[выходит, установка Halt-режима происходит ещё на команде MOV #2015,@#177130]
да, последняя команда - очистка регистра 177130 вообще не нужна, если нету физических дисководов. Она нужна только для того, чтобы остановить двигатель и погасить лампочки дисководов, после второй команды - которая как раз и устанавливает режим, попутно выдавая мусор в дисководы.
[Но разве так должно работать на реальном железе?]
именно так и работает реальное железо. См его схему.
[Но самое удивительное, что на эмуляторе MOV #0 и потом CLR работает]
потому что эмулятор не может досконально точно сэмулировать устройство. Потому-то он эмулятор, а не симулятор. Там есть допущения, когда регистр 177130 доступен по чтению, когда он не должен быть доступен в реальности.
- ? gid
- 21.09.2020 16:53
т.е. команда mov #6,@#177130 выполняется, а mov #2015,@#177130 уже вызывает trap to 4?
- ? gid
- 20.09.2020 15:56
[от 26-го мая 2020-го года, размер файла BKDE.exe 4'084'224 байт]
Ладно. Если так, то уточню работу с атрибутами записи файла в каталоге. Щас атрибуты выставляются по "или" и видимо нельзя одновременно быть установленным атрибутам PERMANENT и UNUSED. О приоритетности атрибутов в записи файла в RT-11 я нигде ничего не нашёл, поэтому всё делается методом тыка и экспериментов.
¤
[А когда устанавливаю Hlt11 (20000) - эмулятор пишет 0. Как должно быть?]
код режима работы СМК - это три бита: 6-й, 5-й и 4-й, в три бита помещается число 0..7,
код режима Hlt11 - на самом деле 0, а 20000 пишут для человеков, чтобы они не путали код режима Hlt11 со сбросом флагов дисковода или ещё с чем-нибудь, и вообще не знаю, что там в голову пришло разработчикам, и почему они выбрали 20000, а не 40000 или 10000.
В эмуляторе код режима работы СМК хранится в 8-битной переменной, а делать какое-то исключение, чтобы 0 подменялся на 20000 не вижу никакого смысла.
-
«
1 | 2 | 3 | 4 | 5 | ... | 15 | »
?