- Вопрос по ЕМТ 36
- [+] Старые сообщения (72)
-
? Manwe - 04.04.2019 16:37
Что-то у меня в Мониторе БК-0011М (голая машина без дисковода) не работает EMT 115. Пытаюсь организовать запись на магнитофон. Реле щёлкает, звука нет, происходит зависание.
В эмуляторе gid можно как-нибудь изобразить голую БК-0011М, чтобы оттрассировать отладчиком?
-
? Manwe - 04.04.2019 17:56
Оказалось, что EMT 115 "Вызов формата БК-0010" - это полная отсебятина. Мало того, что адрес блока параметров передаётся не через R1 (как в БК-0010), а через R0, так ещё и управляющие коды другие: запись кодируется не числом 2 (как в БК-0010), а числом 0.
Давно я не встречал подобной "совместимости". За такое хочется просто взять и настучать разработчикам по голове :( Два часа потратил на то, чтобы заработало.
-
? Manwe - 05.04.2019 10:56
И не удалось придумать как сделать автозапуск при загрузке с магнитофона на БК-0011М
-
? BD - 05.04.2019 14:41
Можно просто упростить мучения. Грузить маленький загрузчик в область 1000-37777, чтобы долго не ждать.
L, 1000G проще набирать. А дальше - простор для творчества, обработка ошибок, как и в какую страницу грузить -017, можно в экран, чтоб было видно, у EMT115 в блоке параметров можно задать какие страницы включать (смещение 26(8)) и т.п.
-
? Manwe - 05.04.2019 14:45
Можно даже просто G вместо 1000G.
Автозапуск я хотел для того, чтобы следом за маленьким загрузчиком шли данные в формате HELP12 и они грузились автоматически. Но не судьба, видимо.
-
? Manwe - 05.04.2019 16:17
Предлагаю переехать в эту тему, она больше подходит.
>> Не из эмулятора, на живой БК. CF50 тебе в помощь
С живой БК писать не хочу, так как мне нужен чистый квадратный сигнал. Лучше посмотрю код CF50, измерю длину сигналов и сделаю так же (на JavaScript или чём-то таком). Спасибо за напоминание про CF50.
-
? Manwe - 05.04.2019 18:10
Записал из эмулятора на 4-ой (максимальной) скорости. Реальная БК читает. Красота!
Суммарно по длительности даже на две секунды короче, чем HELP12 с загрузчиком (хотя, если загрузчик тоже записать на высокой скорости, сравняется).
Единственное, неудобно каждый раз писать эмулятором, потом обрезать, конвертировать в моно. Постараюсь всё же замутить новую утилиту для конвертации.
-
? Manwe - 08.04.2019 19:13
Мы сделали это: JavaScript-конвертер из .bin в .wav на скорости 2777 бод, что в 2.5 раза быстрей обычной скорости БК. Хитрыми хаками удалось добиться того, что формат воспринимается обычным Монитором БК0011М и даже загруженным в ОЗУ Монитором от БК0010-01.
В архиве пример такого wav - загрузка Монитора БК0010-01 в память БК0011(М):
http://thesands.ru/bk0010/BK0010_Game_Loader.zip
-
? BD - 09.04.2019 12:07
Молодцы. А слабо константы в -017 прошивке подобрать в драйвере МГ, чтобы на реальных БК10 и БК11М можно было записывать в телефон на скорости "2777 бод"? см. KDBIT0, KDBIT1 и т.п. https://forum.maxiol.com/index.php?showtopic=4335
-
? Manwe - 09.04.2019 23:20
BD, разве кто-то станет перепрошивать ПЗУ ради этого? Если так, то лучше вообще новый формат записи сделать (возможен прирост ещё процентов на 40).
¤
Кстати, мы обогнали CF50 с его максимальной скоростью. Не сильно (при загрузке 16 Кб разница около двух секунд), но всё же. При этом, как мне кажется, надёжность выше. На БК0010 получилась скорость 2381 бод (и такой файл читается также 11-ой БК). А максимально из БК0011 выжимаем 2777 бод, но 10-ка уже не может такое прочесть.
-
? BD - 10.04.2019 02:51
С возвращением к железкам! (real hardware). Эмуляторы - в топку! ))
https://bk0010.org/forum/?id=32567&old
Такое паяет MM руками за 500 руб. в розницу (оптом дешевле ~350).
https://ibb.co/MCWcnmZ
Теперь надо придумать... как же это использовать?.. "перепрошивать ПЗУ" - легко. Только полёт фантазии ))
-
? Manwe - 10.04.2019 10:05
Идею понял. Да, константы можно подобрать. Только я не уверен, что в iPhone можно напрямую писать звук с магнитофонной линии БК. У меня для таких целей заведён iRig. Но если кто-то подтвердит экспериментом, что звук пишется без искажений и смартфон не сгорает – тогда да, можно заняться оптимизацией ПЗУ.
-
? Manwe - 08.06.2019 00:08
Ещё один вопрос по EMT 36 в MKDOS.
Взял я ПЗУ Пролог-Д с адреса 140000 и загрузил его в память СМК (написал маленькую программку для этого, запустил в MKDOS). В страницах памяти БК 0011 остался Монитор от БК 0010 (проверил отладчиком). Вроде бы, всё хорошо.
Теперь в Прологе-Д пытаюсь загрузить текст программы, срабатывает переход на обработчик EMT 36, но вместо загрузки выдаёт сообщение "ОШИБКА". В чём может быть проблема?
На БК 0010 такого нет. Только на БК 0011М.
-
? BD - 08.06.2019 00:58
В загружаемом файле MONITOR на БК0011(М) по адресу 100036:120002 - адрес п/п "перехвата" EMT36 такой (как и в АНДОС), типа "для улучшения перехвата с МЛ". На БК0010(-01) просто заносится в @#30 адрес нового EMT-диспетчера, который может быть уничтожен ))
-
? Manwe - 08.06.2019 01:40
На БК 0010 всё работает.
На БК 0011М по адресу 30 - 100112. По адресу 100036 число 120002 - всё верно. Код обработки именно EMT 36 начинается с адреса 120346, и не похоже, что там что-то испортилось. Что-то там выполняется. Но при попытке чтения - "ОШИБКА". При попытке записи просто возвращается обратно.
Не может MONITOR обращаться к процедурам из ПЗУ БК 0011М в адреса 140000 и выше? А то я ж туда загрузил Пролог-Д.
-
? BD - 08.06.2019 11:29
>> Не может MONITOR обращаться к процедурам из ПЗУ БК 0011М в адреса 140000 и выше?
Нет, не может.
На БК10 с 140000 раньше была попытка запихать MC, при наличии 16Кб доп.ОЗУ.
А не грузишь ли ты "электронный диск" (VD.SYS/VD.DRV) на БК11М? Отключи.
Вообще, все исходки там:
http://forum.pk-fpga.ru/viewtopic.php?f=23&t=5535
-
? Manwe - 08.06.2019 20:27
>> А не грузишь ли ты "электронный диск" (VD.SYS/VD.DRV)
¤
Как это проверить? В фале STARTS.COM пусто.
-
? BD - 08.06.2019 23:03
Любым отладчиком на БК. В эмуляторе by gid все уже есть.. Ищи проблему в -017 ПЗУ файлик MONITOR. Просто vd.sys перехватывает опять всё, особенно 160004 на букву "E:".
Если нет текста во время загрузки - всё нори. В ANDOS отдельно выводится прямо в правом нижнем углу MASTRERa.
-
? Manwe - 09.06.2019 09:16
BD, в чём-то другом дело. Диска E: нет. Когда выхожу из Micro Commander'а и набираю в Мониторе M, ИМЯ?, ввод - вижу каталог диска. Но когда запускаю с этого диска Пролог-Д и там нажимаю KT, Ч (чтение), ИМЯ?, ввод - сразу ОШИБКА.
-
? Manwe - 09.06.2019 09:29
Это только на БК0011М. В той же MKDOS на БК0010 всё работает.
Смотрю в отладчике перехватчик EMT 36 - он зачем-то устанавливает стек на адрес 136712...
По адресу 122056 вижу CALL @#160010 - инициализация блока параметров HDD. Вот на этой процедуре и вылетает. А там HALT, WORD 177777, HALT, WORD 177777,..
Устанавливаю режим СМК для БК0011М - 40, для БК0010 - 60. Опять что-то напутал с режимами? Где моя ПЗУ?!!! :)
-
? Manwe - 09.06.2019 17:43
Сделал так: перебрасываю содержимое ПЗУ 160000-170000 в нижнее ОЗУ, затем переключаюсь в режим 40 СМК и компирую содержимое ПЗУ обратно на те же адреса.
Заработало.
- << Форум