Последние темы
» Вити больше нет!автор bug19 Пн Фев 20 2023, 19:54
» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47
» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05
» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03
» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02
» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52
» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36
» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37
» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33
» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00
» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58
» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17
» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07
» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08
» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09
» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02
» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47
» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11
» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33
» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38
» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12
» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01
» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22
» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08
» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08
Самые активные пользователи за месяц
Нет пользователей |
Поиск
Радио-86РК: Разное
Страница 3 из 3 • Поделиться
Страница 3 из 3 • 1, 2, 3
Re: Радио-86РК: Разное
51
Изучай микропроцессорный комплект КР580, он максимально полон, при этом относительно не сложен, легко доставаем и дешёв по цене. Это если конечно касается РЭТРО железа, хотя и он на многое способен даже сейчас, например станки на нём как работали, так и продолжают работать. И выпускают продукцию полностью соответствующую нынешним ГОСТ -ам. У меня недавно покупали немного микросхем, как раз для таких станков, обычные КР580, точное название уже не помню.
Просто ядро само собирается из минимума деталей, но при этом не запрятано это всё в одну микросхему, что удобно для расширения, изучения, есть что по-паять. Там нужен сам микропроцессор КР580ВМ80А, тактовый генератор КР580ГФ24, желательно буферизировать шину адреса, я считаю обязательно, например при помощи двух КР580ИР82 и системный контроллер КР580ВК28. Вот 5 микросхем и ядро почти готово, чтобы работало, нужно добавить ПЗУ и ОЗУ и дешифратор адреса и получится простейшее микропроцессорное ядро, которое если включить, то уже будет работать, а далее можно добавлять ПДП если нужно КР580ВТ57, вывод изображения на дисплей КР580ВГ75, параллельные порты КР580ВВ55А и последовательные КР580ВВ51, таймер КР580ВИ53 и там ещё есть с десяток микросхем, то есть после минимума, самого ядра, подключать к нему можно много чего, а тех же портов может быть 255 на ввод и 255 на вывод, но нужно учитывать, что в конкретный момент микропроцессор работает только с одним портом, так же можно добавить в систему часы или страничную память, так как микропроцессор адресует только 64 Кбайт всего памяти ПЗУ + ОЗУ, но ОЗУ можно сделать страничным. И т. д. и т. п...
Просто ядро само собирается из минимума деталей, но при этом не запрятано это всё в одну микросхему, что удобно для расширения, изучения, есть что по-паять. Там нужен сам микропроцессор КР580ВМ80А, тактовый генератор КР580ГФ24, желательно буферизировать шину адреса, я считаю обязательно, например при помощи двух КР580ИР82 и системный контроллер КР580ВК28. Вот 5 микросхем и ядро почти готово, чтобы работало, нужно добавить ПЗУ и ОЗУ и дешифратор адреса и получится простейшее микропроцессорное ядро, которое если включить, то уже будет работать, а далее можно добавлять ПДП если нужно КР580ВТ57, вывод изображения на дисплей КР580ВГ75, параллельные порты КР580ВВ55А и последовательные КР580ВВ51, таймер КР580ВИ53 и там ещё есть с десяток микросхем, то есть после минимума, самого ядра, подключать к нему можно много чего, а тех же портов может быть 255 на ввод и 255 на вывод, но нужно учитывать, что в конкретный момент микропроцессор работает только с одним портом, так же можно добавить в систему часы или страничную память, так как микропроцессор адресует только 64 Кбайт всего памяти ПЗУ + ОЗУ, но ОЗУ можно сделать страничным. И т. д. и т. п...
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
san010101- Новичок
- Сообщения : 41
Дата регистрации : 2018-07-24
Откуда : Красноярск
Re: Радио-86РК: Разное
53
сам начинал на z80
Я тоже клепал Ленинграды первые на нём, на продажу, но мне Z80 ни тогда не нравился, ни сейчас, как-то не лёг на душу, до 1994 года примерно, последний собрал в 1994г. и потом больше не собирал, до недавнего времени.
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Re: Радио-86РК: Разное
54
А все таки сделать ПЗУ с языком высокого уровня, чтобы не загружаеть каждый раз?
san010101- Новичок
- Сообщения : 41
Дата регистрации : 2018-07-24
Откуда : Красноярск
.
55
Неточно поставленный вопрос. Неясно о каком конкретно языке высокого уровня идёт речь.san010101 пишет:А всё-таки сделать ПЗУ с языком высокого уровня, чтобы не загружать каждый раз?
- о ЯВУ:
Если речь идёт о настоящем ЯВУ, т.е о компиляторе Паскаля, Си, Ада, PL/M и куче других уже непопулярных ЯВУ, которые существуют для КР580, то загружать их из ПЗУ обойдётся довольно дорого (нужен большой объём ПЗУ). Кстати, дискета, винчестер или флэш-привод это по сути то же большое ПЗУ, но оперативно перезаписываемое.
Большой объём ПЗУ нужен по следующим причинам. Во-первых, все эти компиляторы не являются отдельными независимыми программами, а работают только в составе DOS для которой предназначен конкретный компилятор. Т.к компилятору откуда-то надо брать десятки файлов содержащих исходный текст программы, стандартные библиотеки и заголовочные иклюдэ-файлы. Также сами компиляторы не являются одним единственным файлом, а состоят из множества модулей, последовательно подгружаемых в TPA в ходе разных фаз трансляции (иначе как 150 кб уместить в адресном пространстве 8-ми разрядки). Кроме того, без расширения ОЗУ хотя-бы до 52 кб использовать компиляторы ЯВУ на РК невозможно.
К сожалению, такие компиляторы имеют существенный объём кода и ПЗУ такого объёма обойдётся недёшево. Например, компилятор Паскаля имеет объём под 200 кб. К некоторым компиляторам (тем, что транслируют в текст на ассемблере) ещё нужны другие программы CP/M (линковщик и ассемблер, если использовать куски на ассемблере). Для их хранения достаточно ROM-привода ~48 кб (тогда в ROM-диске храним саму CP/M и ещё несколько программ CP/M).
Имея большой по объёму многобанковый ROM-диск технически несложно из него сделать CP/M привод (эл.диск ROM), т.е диск с флагом R/O, содержащий часто используемые CP/M-программы. Для этого достаточно содержимое CP/M RAM-диска прошить в ROM-диск. Я делал себе в 90-тые CP/M-привод из ROM-диска (это было удобно чтобы не хранить графический драйвер XBIOS.SYS в 16К на каждой дискете). Естественно, при попытке записи на такой CP/M привод будет выскакивать обидная надпись BAD SECTOR... Потому ROM-привод в CP/M не может быть диском A (т.к CP/M имеет дурную привычку писать свои временные файлы именно на привод A:).
Но иметь только CP/M ROM-привод содержащий все файлы компилятора недостаточно. Нужен и CP/M привод A (хотя бы минимального размера) позволяющий на него запись. Для компиляции достаточно небольшого RAM-диска размером в 56К из дополнительной банки ОЗУ новодела РК86. Ведь имея компилятор в ROM-приводе в эл.диске требуется хранить только исходник и результирующий код.
- о бейсике:
Если же под ЯВУ понимается интерпретатор бейсика, т.е бейсик от МИКРО-80 (1A20), бейсики МИКРОН (разных версий), журнальный бейсик-сервис с вводом ключевых слов через <АР2>, бейсик MIUS, бейсик ПЛЮС или речь о других подобных интерпретаторах бейсика, то иметь их в ПЗУ совсем не проблема.
Тут есть два варианта. Загрузка из расширенного до нужного объёма резидентного ПЗУ или из внешнего ROM-диска (по схеме ROM-диска ОРИОНА, т.к ROM-диск предложенный для самого РК имел ограничение в 32К).
Способ ROM-диска, наиболее нетравмирующий. При этом достаточно прошить в ROM-диск желаемые программы и слегка модифицировать ROM-BIOS F800. Последнее теперь сделать легко, т.к я ещё в прошлом году для добавки поддержки многобанковости и ВИ53 в ПЗУ РК, освободил там ~170 байт, куда можно уместить даже маленькую ОС для обслуги ROM-диска.
Для решения задачи старта бейсика достаточно встроить простейший стартёр программы из ROM-диска (это займёт менее 30 байтов кода). Тогда по нажатию <СБРОС> будет обычный выход в RAM-монитор из ROM-BIOS. Если же в момент сброса удерживать какую-нибудь из трёх внематричных клавиш (УС, СС, РУСЛАТ), то происходит выход в бейсик (или любую другую программу из ROM-диска). При этом, чтобы можно было менять программу в ROM-диске без перепрошивки ПЗУ F800, программа размещается в ROM-диске в формате ORD, т.е содержит в начале стандартный ORD-заголовок в 16 байт из которого загрузчик в ПЗУ узнаёт размер файла и место загрузки.
Расширять резидентное ПЗУ можно 3-мя способами. Первый - это расширение резидентного ПЗУ F800, - страничным методом в окне F800...FFFF, при этом в окне 2 кб, управляемые какими-либо битами прокачиваются страницы ПЗУ размером в 2 кб.
Второй способ, - это введение "теневого ПЗУ". Это когда большое окно ПЗУ на 8К/16К (или даже 32К) находится как бы в тени ОЗУ по адресам 0...1FFF/3FFF и по отдельной команде включается, чтобы обеспечить доступ процессору к находящимся там программам. Программа может как работать из окна ПЗУ, так и просто храниться там, перегружаясь для работы в ОЗУ. Естественно, при этом ОЗУ находящееся в этих же адресах (и переведённое при включении ПЗУ в "тень") недоступно, что делает невыгодной работу бейсика прямо из ПЗУ, т.к резко сокращает ОЗУ для хранения бейсик программы. К тому же при этом бейсик надо модифицировать, чтобы перенести рабочие ячейки и адрес буфера текста на 4000. Интересно, что такая архитектура с работой бейсика прямо из ПЗУ очень похожа на архитектуру ZX-16К из 1982 года.
Третий способ это включение ПЗУ в неиспользуемых дырках адресного пространства в области портов. Как известно, в РК86 не очень удачно для портов выделено целых 32 кб, тогда как реально РК-портам достаточно ~20 адресов. Потому можно в каждой из трёх 8-ми килобайтовых областей являющихся выборками В/У (8000...9FFF, A000...BFFF, C000...DFFF) сделать с помощью дополнительной логики перераспределение адресного пространства.
Отдав из 8-ми килобайт собственно порту ввода/вывода всего 1 кб (есть причина почему меньше нежелательно), выиграв чип-селект на участок в 7 кб, в котором можно разместить расширяющее ПЗУ 27128 (с 2-х страничной коммутацией, т.к в 7 кб влезает только бейсик 1A20 от МИКРО-80). Можно взять схемку вот отсюда. Рассмотрите также вариант расширения ПЗУ до 15 кб по этой схеме. Такой вариант выгоден тем, что тогда бейсик может работать из самогО ПЗУ (если его перетранслировать), оставив все 29 кб для размещения бейсик-программы.
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
.
56
Как ни странно, самый убогий компьютер РК86 остаётся самым популярным, во многом из-за тех, кто подключается к ретро-хобби. Возможно потому, что новички не уверены в своих силах и думают, что РК сделать проще других. А это не так. Уже один только 30 лет подряд мучивший всех эр-кашников глюк в виде сбоев ОЗУ, должен настораживать. Многим не удаётся добиться надёжности даже сейчас, когда информации на эту тему накопилось много.
В этом разделе полно бестолковых, безинформативных тем. А самой необходимой темы в помощь собирающим РК нет. В журнале "Радио" с периодичностью в несколько лет публиковали подборки по устранению глюка, причём почти в каждой статье написано, что эта метода борьбы с глюком лучшая. В тематических форумах на десятках тем, с десятками страниц каждая, также разбросаны описания ещё более лучших методов. Но найти их там не потратив десятки часов на поиск, т.е сходу - практически невозможно.
В итоге абсолютно неясно, какой же метод устранения глюка наилучший, наиболее надёжный и повторяемый. Хоть бы в одном форуме была бы тема в которой в одном месте были бы приведены все известные методы борьбы с глюком ОЗУ и большими буквами был бы описан метод ремонта, который сейчас признан всегда работающим, т.е 100% эффективным для 100% оригинальных машин. Кстати, странно, что делая новоделы никто не заимствовал схемы формирования /RAS-/CAS из клонов РК, ведь про них (а их было полтора десятка), никаких жалоб не поступало.
Также было бы удобно, если бы доступно лежали схемы по замене процессора на Z80 и 8085, а также схема добавки к КР580 контроллера ВК28. А то пока я это нашёл в одном популярном форуме, то без пользы истратил кучу времени.
В этом разделе полно бестолковых, безинформативных тем. А самой необходимой темы в помощь собирающим РК нет. В журнале "Радио" с периодичностью в несколько лет публиковали подборки по устранению глюка, причём почти в каждой статье написано, что эта метода борьбы с глюком лучшая. В тематических форумах на десятках тем, с десятками страниц каждая, также разбросаны описания ещё более лучших методов. Но найти их там не потратив десятки часов на поиск, т.е сходу - практически невозможно.
В итоге абсолютно неясно, какой же метод устранения глюка наилучший, наиболее надёжный и повторяемый. Хоть бы в одном форуме была бы тема в которой в одном месте были бы приведены все известные методы борьбы с глюком ОЗУ и большими буквами был бы описан метод ремонта, который сейчас признан всегда работающим, т.е 100% эффективным для 100% оригинальных машин. Кстати, странно, что делая новоделы никто не заимствовал схемы формирования /RAS-/CAS из клонов РК, ведь про них (а их было полтора десятка), никаких жалоб не поступало.
Также было бы удобно, если бы доступно лежали схемы по замене процессора на Z80 и 8085, а также схема добавки к КР580 контроллера ВК28. А то пока я это нашёл в одном популярном форуме, то без пользы истратил кучу времени.
- Спойлер:
Метод борьбы с глюком заинтересовал потому, что несколько месяцев назад я отчистил свою плату РК от второэтажных микросхем и привёл её в исходный вид (из доработок осталась переделка на фонт 9*8 ) и готовлюсь начать настройку. Я так ремонтировал этот РК уже несколько раз. Для настройки приходится вернуть плату к оригинальной схеме. И только потом можно восстанавливать мелкие доработки. Настройку не начинал и даже ещё не решил во что превратить эту плату.
Потому меня и интересует метода борьбы с глюкастостью ОЗУ, которая сейчас считается лучшей и работает. Когда-то я перепробовал все журнальные методы, но ни один не помог. Без сбоев мой РК не работал на РУ5 и на импортных 4164 от пяти-шести разных фирм. А абсолютно без сбоев заработал только с ОЗУ 4164 единственной фирмы TMS.
Я ещё буду думать как доработать свой РК. Есть несколько желаний. Хотя первым делом, естественно, восстановлю то, что имел ранее - т.е открою ОЗУ на 8400...BFFF и добьюсь работы РК-КНГМД (т.к требуется перенести на PC файлы с РК-дискет, там некоторые утерянные РК-программы и исходники, что нужны).
А вот дальше надо думать. Сначала хотел ставить Z80, но теперь возникло желание поставить в РК 8085 (интересно попробовать его 10 очень удобных недокументированных команд). Также хотелось бы переделать РК под VGA-монитор (для этого ОЗУ меняется на статику). А в случае, если бы у меня вдруг случился припадок энтузиазма (что маловероятно), то было бы интересно напаять на имеющуюся ВГ75 вторую ВГ75 вторым этажом и получить из неё 8-й бит для знакогенератора по идее от freddy.
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Re: Радио-86РК: Разное
57
вот же это решение. Привожу цитату с другого форума:
"Перебирая всевозможные варианты "лечения" проблемы, нашел "нестандартное" решение проблемы от А.Сапронова из г. Калуга путем изменения режима работы ИР1 и перевода ее в режим только сдвига. И вот же оно. Компьютер работает идеально и абсолютно стабильно, как и полагается хорошей железке. Самое гениальное, что для этого нужно всего лишь поменять местами проводники к выводам 1 и 6 микросхемы ИР1, то есть вывод 6 заземлить, а что шло к 6-му - перевести на 1й, предварительно оторвав тот от "земли". Все остальные костыли-задержки, естествено, устранены. Предлагаю в очередную ревизию ПП закладывать это решение стандартно, так как оно абсолютно и требует ничтожных перестановок."
"Перебирая всевозможные варианты "лечения" проблемы, нашел "нестандартное" решение проблемы от А.Сапронова из г. Калуга путем изменения режима работы ИР1 и перевода ее в режим только сдвига. И вот же оно. Компьютер работает идеально и абсолютно стабильно, как и полагается хорошей железке. Самое гениальное, что для этого нужно всего лишь поменять местами проводники к выводам 1 и 6 микросхемы ИР1, то есть вывод 6 заземлить, а что шло к 6-му - перевести на 1й, предварительно оторвав тот от "земли". Все остальные костыли-задержки, естествено, устранены. Предлагаю в очередную ревизию ПП закладывать это решение стандартно, так как оно абсолютно и требует ничтожных перестановок."
Microsha- Новичок
- Сообщения : 25
Дата регистрации : 2019-09-12
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
59
Спасибо, как раз это и имел в виду. Я помнил, что когда-то встречал пост с такой доработкой (и впоследствии положительные отзывы), но когда вчера стал искать, потратил час и не нашёл. Я вообще-то пробовал почти все разумные методы борьбы с глюком, опубликованные в ж."Радио" к 1991, но этот метод тогда или не заметил или он опубликован позже. Попробую этот метод уже в ближайшие годы (м.быть даже ещё в этом году).Microsha пишет:вот же это решение
Где вы увидели много эмоций? Тем более "очень много". Я лишь, причём без всяких эмоций, намекнул, что раз предложенной темы нет, то кто-нибудь мог бы её создать в данном форуме (и естественно, наполнить). Если под эмоциями имеется в виду упоминание "безинформативных тем", то я ничуть не преувеличил - половина тем этого раздела (да и других) просто пустышки.Viktor2312 пишет:Очень много эмоций, как бы это сказать...
Это делается словами. Чтобы что-то сказать слова надо составлять в определённом порядке, желательно со смыслом и с учётом правил русского языка. Выбирая слова желательно избегать англо-русского суржика, уголовного и молодёжного жаргона. А вообще говорить (публиковать в форуме) надо, если есть, что сказать и озвучивание этой информации имеет смысл, т.е содержит хоть что-то полезное для читателя.Viktor2312 пишет:как бы это сказать...
Чем практика в листании на форумах тем в сотни страниц в поисках нужной информации - хороша?Viktor2312 пишет:практика - это хорошо...
Неточно написал, - я нашёл только схемы замены CPU, схему установки ВК28 в РК так и не нашёл.barsik пишет:схемы по замене процессора на Z80 и 8085, а также схема добавки к КР580 контроллера ВК28. А то пока я это нашёл в одном популярном форуме
Установка ВК28 меня интересует из принципа... т.е по историческим причинам. Вообще-то ставить ВК28 не имеет особого смысла. Он не поможет в турбировании, т.к в РК не процессор слабое звено, а небуферизованное ОЗУ. Я его хотел поставить из-за того, что тогда мне просто нравились ВК28 (они позволили турбировать Специалист аж до 3.5 МГЦ) и я имел их с десяток. И схема интересна потому, что у меня есть платка переходник, где стоит процессор и ВК28.
- Спойлер:
- Я уже когда-то делал попытку поставить ВК28 в РК. Когда я его турбировал (путём замены кварца питающего CPU, ж.Радио 01.1991), то без периферийных плат и снятым ППА D14, РК надёжно работал с кварцем 28 МГЦ (клок 3.1 МГЦ). Но при нагрузке шины периферией (эл.диск на РУ7 и РК-КНГМД) надёжность падала и с подключенной периферией приходилось использовать кварц лишь 22 МГЦ.
Тогда я (полагая, что это улучшит надёжность) решил добавить ВК28 на платке-переходнике с штырьками (платка вставляется прямо в панельку КР580, фото этого переходника где-то выкладывал). Но как ни бился так и не смог заставить работать РК с ВК28. Так и не понял, чём дело, платка так и лежит без пользы (платка исправна, в Специалисте работает).
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Re: Радио-86РК: Разное
60
Чем практика в листании на форумах тем в сотни страниц в поисках нужной информации - хороша?
Вы можете не листать, читать только первый пост. Обычно туда по мере сил и возможностей переносится вся полезная информация. У нас же свобода выбора, можно листать, а можно и не листать - никто никого ни к чему не принуждает. Да, а так конечно форум наполнен информацией только на 0,01 % от той, которую я хочу выложить, зачем, да ни зачем, просто как минимум для себя, так как да, в моём понимании, форум - это и личные конспекты, это и библиотека, и хранилище схем, статей, описаний, прошивок, ПО... Остальное домыслите и переиначте сами, по своему усмотрению... И вообще я отдыхаю, а потом работать буду, так что особо читать, что вы пишите буду в воскресенье, и большая просьба, постарайтесь без перехода на личности, оскорблений и матов, ну будьте разумными и воспитанными людми, этот форум - для технической информации, а не для складирования многопостов флейма и склоков...
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
61
Вышла путаница. Я писал, что утомился искать информацию о "Z80 и 8085 в РК" не на этом форуме, а на другом, где это есть. А на этом форуме я конечно тоже посмотрел, но нет. А вы ответили, что это хорошая практика (а мне не нужна лишняя тренировка в пользовании браузером, я это и раньше уже делал). Вот я и спросил, чем хорошо впустую тратить время на поиск на другом форуме?Viktor2312 пишет:Вы можете не листать, читать только первый пост.Чем практика в листании на форумах тем в сотни страниц в поисках нужной информации - хороша?
В итоге два поста ни о чём лучше удалить.
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
.
62
Это временный пост (будет удалён через какое-то время) для переадресации с другого форума, где исходники выложенные для просмотра не могут быть выложены под спойлер и потому это вызывает гнев тех пользователей, которые с детства ненавидят ассемблер, предпочитая бейсик.
- исходник ПЗУ РК для модификаций:
; МОНИТОР РК86 для КР580 совместимый с Z80
; ========================================
; Last modify: 04.02.2020
; Свободно 274 ячейки
; Звук только на INTE
; В CCP принудительно включается ЛАТ-регистр.
; Удалена директива X. Директива G теперь не имеет второго параметра -
; стоп точки. Зато теперь введён возврат из запуска по G по RET. И можно
; передавать два параметра (второй и третий, они передаются в DE и BC).
.Z80
aseg
ORG 100H
RABADR EQU 0F800H
DOPPPA EQU 0A000H
PDA EQU DOPPPA
PDU EQU DOPPPA+3
K_ORIG EQU 0 ; если не 0, то оригинальный курсор
BASE EQU 7600H ; ниже D0H байтов - служебные ячейки
EK_ADR EQU BASE ; текущий адрес на экране
POSX EQU BASE+02H
POSY EQU BASE+03H
ESC_F EQU BASE+04H
KBDFLG EQU BASE+05H ; если =0, то есть символ в SYMBUF
RUSLAT EQU BASE+06H ; допустимо только 0 или FF
LAST_K EQU BASE+09H ; эти 2 байта должны следовать подряд
COUNT EQU BASE+0AH ; счётчик опросов (вначале 15)
APVFLG EQU BASE+0BH ; флаг автоповтора
FRELOC EQU BASE+0CH ; эта ячейка не используется
TMPSTK EQU BASE+0DH ; временно храним стек при МГ п/п-ммах
POINT EQU BASE+14H ; адрес откуда произошёл RST_30H
R_HL EQU BASE+16H
R_BC EQU BASE+18H
R_SP EQU BASE+1CH
R_AF EQU BASE+1EH ; ниже откладываются AF,HL,DE,BC
STOP_A EQU BASE+23H
TMP_COD EQU BASE+25H
P_JMP EQU BASE+26H ; для байта C3H (JMP)
PAR_HL EQU BASE+27H
PAR_DE EQU BASE+29H
PAR_BC EQU BASE+2BH
FLG_P2 EQU BASE+2DH ; флаг, что есть параметры 2 или 2,3
INV_MG EQU BASE+2EH
KNS_RD EQU BASE+2FH
KNS_WR EQU BASE+30H
RAMTOP EQU BASE+31H
COMBUF EQU BASE+33H ; буфер ввода директивы
STACK EQU BASE+0D0H ; стек монитора
SA EQU 076D0H ; 76D0 начало экранной области
SCBASE EQU 077C2H ; 77C2 ЛЕВ.ВЕРХН.УГОЛ ЭКР.
VG_75 EQU 0C000H
VT_57 EQU 0E000H
PA EQU 8000H
PB EQU PA+1
PC EQU PA+2
PU EQU PA+3
PDA EQU DOPPPA
PDB EQU PDA+1
PDC EQU PDA+2
PDU EQU PDA+3
; ----------------------------------------------
LOOP MACRO ADDR
DEC BC
LD A,B
OR C
JP NZ,ADDR
ENDM
; ----------------------------------------------
.phase 0F800H
JP XF800 ; +0
JP CONIN ; +3
JP LDBYTE ; +6
JP COUT_C ; +9
JP WRBYTE ; +C
JP COUT_C ; +F это д.быть PRINT
JP STATUS ; +12
JP HEX_A ; +15
JP MSGH ; +18
JP XF81B ; +1B
JP ASKCUR ; +1E
JP RD_SCR ; +21
JP RD_BLK ; +24
JP WR_BLK ; +27
JP CHSUMM ; +2A
JP PUSK_VG ; +2D
ASKTOP: LD HL,(RAMTOP) ; +30
SETTOP: LD (RAMTOP),HL ; +33
RET
; ----------------------------------------------
AFB86: LD C,(HL) ; 10 bytes
CALL WRBYTE
CALL AF999
JP AFB86
; ----------------------------------------------
XF800: LD HL,BASE-1
LD (RAMTOP),HL
LD SP,HL
LD A,8AH
LD (PU),A
CALL PUSK_VG
INC HL ; LD HL,BASE
LD C,L ; 0
LD DE,COMBUF+2CH
CALL DIR_F
CALL RST_18
TITR: defb 1FH,'radio-86r','k' or 80H
LD HL,1D2AH
LD (KNS_RD),HL
if $ ne RABADR + 6CH
if1
.printx * Standard subroutine WARMST shifted ! *
endif
endif
WARMST: ; Warm_BOOT
LD SP,STACK
CALL RST_18
PROMPT: defb 13,10,'--','>'+128
CALL GETLIN
LD HL,WARMST
PUSH HL
LD HL,COMBUF
LD A,(HL)
PUSH AF
CALL GETPRM
LD HL,(PAR_BC) ; Z80: LD BC,(PAR_BC)
LD C,L
LD B,H
LD HL,(PAR_DE) ; Z80: LD BC,(PAR_DE)
EX DE,HL
LD HL,(PAR_HL)
POP AF
CP 'D'
JP Z,DIR_D
CP 'C'
JP Z,DIR_C
CP 'S'
JP Z,DIR_S
CP 'T'
JP Z,DIR_T
CP 'M'
JP Z,DIR_M
CP 'G'
JP Z,DIR_G
CP 'I'
JP Z,DIR_I
CP 'O'
JP Z,DIR_O
CP 'L'
JP Z,DIR_L
CP 'R'
JP Z,DIR_R
CP 'F'
JP NZ,ERROR
DIR_F:
LD (HL),C
CALL AF999
JP DIR_F
; ----------------------------------------------
; ВХОД: E=POSX, D=POSY
; HL= экранный адрес
COD_18: ; 29 bytes
LD A,E ; POSX
INC HL ; следующий экранный адрес
INC E ; POSX++
CP 8+63 ; последняя колонка ?
RET NZ ; если была не последняя колонка
LD E,8 ; нач.позиция по X на новой строке
LD BC,-64
ADD HL,BC ; Вычесть 64 = экр.поз в начало строки
COD_1A: LD A,D
CP 3+24 ; последняя строка ?
LD BC,78
JP NZ,AFDD3 ; если не последняя строка
LD D,2 ; если последняя строка, то на первую строку
LD BC,-24*78
AFDD3: INC D
ADD HL,BC ; вычесть 24*78
RET
; ----------------------------------------------
if $ ne RABADR + 0EEH
if1
.printx * Internal subroutine GETLIN shifted ! *
endif
endif
GETLIN: LD HL,COMBUF
LD D,H
LD E,L
AF8F1:
XOR A
LD B,A ; чтобы на выходе получить флаг пустой строки
CALL SET_RL
AF8F3: CALL CONIN ; используется в DIR_M
CP 8
JP Z,BAKSTP
CP 7FH
JP Z,BAKSTP
LD (HL),A
CALL COUT_A
CP 13
JP Z,AF91A
CP '.'
JP Z,WARMST
LD B,E ; B=76H --> бит D7=0
LD A,low COMBUF+31
CP L
JP Z,ERROR
INC HL
JP AF8F3
; ----------------------------------------------
TABK2: defb 09,0AH,0DH,7FH,08H,19H,18H,1AH ; 8 bytes
; ----------------------------------------------
SET_RL: LD (RUSLAT),A ; 6 bytes
JP PUSK_VG
; ----------------------------------------------
if $ ne RABADR + 012CH
if1
.printx * Internal subroutine GETPRM shifted ! *
endif
endif
GETPRM: LD HL,BASE+27H
LD DE,BASE+2DH
LD C,0
CALL DIR_F
if high (BASE+34H) eq high BASE
LD E,34H
else
.printx * Wrong BASE (Low BASE need be < 0E0H) !
endif
CALL GET_HL
LD (PAR_HL),HL
LD (PAR_DE),HL
RET C
LD A,255
LD (FLG_P2),A
CALL GET_HL
LD (PAR_DE),HL
RET C
CALL GET_HL
LD (PAR_BC),HL
RET C
JP ERROR
; ----------------------------------------------
AFE97: PUSH HL ; 27 bytes
LD HL,7 shl 8 + 1
AFE9C: LD A,L
RRCA
LD L,A
CPL
LD (PA),A
LD A,(PB)
CPL
OR A
JP NZ,AFEB3
DEC H
JP P,AFE9C
AFEAF: LD A,0FFH
POP HL
RET
; ----------------------------------------------
BEEP: LD BC,05F0H ; 20 bytes
SND_BC: LD A,B
BPLOO1: EI
DEC A
JP NZ,BPLOO1
LD A,B
BPLOO2: DI
DEC A
JP NZ,BPLOO2
DEC C
JP NZ,SND_BC
RET
; ----------------------------------------------
AFEF3: LD A,H ; 7 bytes
LD HL,TABK1
JP AFEFE
; ----------------------------------------------
DIR_G: JP (HL) ; 1 bytes
; ----------------------------------------------
if $ ne RABADR + 0190H
if1
.printx * Internal subroutine CMPDH shifted ! *
endif
endif
CMPDH: LD A,H
CP D
RET NZ
LD A,L
CP E
RET
; ----------------------------------------------
JJJ_02: CALL HXHLBL ; 15 bytes
LDXHX@: LD A,(HL)
HEXABL: PUSH BC
CALL HEX_A
LD A,20H
CALL COUT_A
POP BC
RET
; ----------------------------------------------
DIR_S: LD A,C ; 11 bytes
CP (HL)
CALL Z,HXHLBL
CALL AF996
JP DIR_S
; ----------------------------------------------
if $ ne RABADR + 01B0H
if1
.printx * Internal subroutine CR shifted ! *
endif
endif
CR: CALL RST_18
defb 13,10 or 80H
RET
; ----------------------------------------------
DIR_I: LD A,(FLG_P2) ; 46 bytes
OR A
JP Z,AFA91
LD A,E
LD (KNS_RD),A
AFA91: CALL RD_BLK
CALL HXHLBL
CALL HXDEBL
EX DE,HL
PUSH BC
CALL CHSUMM
LD H,B
LD L,C
CALL HXHLBL
POP DE
CALL CMPDH
RET Z
CALL HXDEBL
ERROR: CALL RST_18
defb '?'+80H
JP WARMST
; ----------------------------------------------
DIR_L: CALL HXHLBL ; 30 bytes
AFA0B: LD A,(HL)
OR A
JP M,AFA15
CP 20H
JP NC,AFA17
AFA15: LD A,'.'
AFA17: CALL COUT_A
CALL AF996
LD A,L
AND 0FH
JP Z,DIR_L
JP AFA0B
; ----------------------------------------------
XF81B: LD A,(PC) ; 30 bytes
RLA
LD A,0FEH
RET NC
AFE7D:
XOR A
LD (PA),A
; LD (PC),A
LD A,(RUSLAT)
AND 00000001B
OR 00000110B ; зажигаем/гасим светодиод
LD (PU),A
LD A,(PB)
INC A
JP NZ,AFE97
DEC A
RET
; ----------------------------------------------
AFF3B: LD A,L ; 23 bytes
AND 2FH
LD L,A
AFF3F: LD A,L
CP 40H
POP HL
RET P
PUSH HL
LD L,A
AND 00FH
CP 00CH
LD A,L
JP M,AFF50
XOR 10H
AFF50: POP HL
RET
; ----------------------------------------------
CHSUMM: LD BC,0 ; 23 bytes
AFB19: LD A,(HL)
ADD A,C
LD C,A
PUSH AF
CALL CMPDH
JP Z,POPAF
POP AF
LD A,B
ADC A,(HL)
LD B,A
CALL AF999
JP AFB19
; ----------------------------------------------
DIR_M:
; CALL HXHLBL ; 22 bytes
; CALL LDXHX@
CALL JJJ_02
PUSH HL
CALL GETLIN
POP HL
JP NC,AFA3B
; JP C,AFA3B
PUSH HL
CALL GET_HL
LD A,L
POP HL
LD (HL),A
AFA3B: INC HL
JP DIR_M
; ----------------------------------------------
DIR_R: LD A,90H ; 19 bytes
LD (PDU),A
AFA6D: LD (PDB),HL
LD A,(PDA)
LD (BC),A
INC BC
CALL AF999
JP AFA6D
; ----------------------------------------------
DIR_D: CALL HXHLBL ; 18 bytes
AF9C8: CALL LDXHX@
CALL AF996
LD A,L
AND 0FH
JP Z,DIR_D
JP AF9C8
; ----------------------------------------------
KEY_FE: LD A,(PC) ; 18 bytes
AND 80H
JP Z,KEY_FE ; ждём отпускания РУС/ЛАТ
LD A,(RUSLAT)
CPL
CALL SET_RL
JP AFE1A
; ----------------------------------------------
AF996: CALL CHK_F4 ; 11 bytes
AF999: CALL CMPDH
INC HL
RET NZ
DEC HL
POPAF: POP AF
RET
; ----------------------------------------------
LD_BLK: CALL LDBS ; 10 bytes
LD (HL),A
CALL AF999
JP LD_BLK
; ----------------------------------------------
RD_SCR: PUSH HL ; 7 bytes
LD HL,(EK_ADR)
LD A,(HL)
POP HL
RET
; ----------------------------------------------
RD_BLK: LD A,0FFH
CALL @LD_BC
PUSH HL
ADD HL,BC
EX DE,HL
CALL LDBCBS
POP HL
ADD HL,BC
EX DE,HL
PUSH HL
CALL LD_BLK
LD A,0FFH ; с поиском СБ
CALL @LD_BC
POP HL ; БЫСТРЕЕ DB 06 -> LD B,NN
if $ ne RABADR + 02CEH ; FACE
if1
.printx * Internal subroutine PUSK_VG shifted ! *
endif
endif
PUSK_VG: ; 1001.0011
; 1100.0011
PUSH HL
LD HL,VG_75+1
LD (HL),0 ; reset commando
DEC HL ; адрес VG_75
LD (HL),04DH ; 0.1001101 77+1 знакомест
LD (HL),01DH ; 00.011101 29+1 строк
LD (HL),99H ; 1001.1001 9 +1 линия подчерк.
; 9+1 линий в знакоместе
if K_ORIG
LD (HL),93H
else
LD (HL),0C3H
endif
INC HL ; адрес VG_75+1
LD (HL),27H ; start display commando
LD A,(HL) ; read status
AFAE1: LD A,(HL) ; read status
AND 20H ; mask 'Interrupt request flag'
JP Z,AFAE1 ; ждем конца строки
LD HL,VT_57+8
LD (HL),80H
LD L,4 ; VT_57+04
LD (HL),low SA ; 0D0H
LD (HL),high SA ; 076H
INC L ; адрес VT_57+5
LD (HL),23H
LD (HL),49H
LD L,8 ; VT_57+8
LD (HL),0A4H
POP HL
RET
; ----------------------------------------------
DIR_O: LD A,C
OR A
JP Z,AFB35
LD (KNS_WR),A
AFB35: PUSH HL
CALL CHSUMM
POP HL
CALL HXHLBL
CALL HXDEBL
EX DE,HL
PUSH HL
LD H,B
LD L,C
CALL HXHLBL ; КС
POP HL
WR_BLK:
PUSH BC ; КС
LD BC,0 ; выводим 256 байтов 00 (пилотон)
AFB4D: CALL WRBYTE
EX (SP),HL ; это задержка 38 тактов
EX (SP),HL
DEC B
JP NZ,AFB4D
LD C,0E6H ; выводим синхробайт E6
CALL WRBYTE
CALL WR_HL ; выводим НА
EX DE,HL
CALL WR_HL ; выводим КА
EX DE,HL
CALL AFB86 ; выводим блок
LD HL,0
CALL WR_HL ; выводим 2 байта 00
LD C,0E6H ; снова выводим с/байт E6
CALL WRBYTE
POP HL
CALL WR_HL ; выводим КС
JP PUSK_VG
; ----------------------------------------------
; Вводит в HL HEX-число из строки по (DE) до нажатия ВК
GET_HL: LD HL,0 ; 48 bytes
AF95D: LD A,(DE) ; Выход: CY=1 если разделитель <ВК>
INC DE
CP 13
SCF
RET Z
CP ','
RET Z
CP 20H
JP Z,AF95D
LD BC,ERROR
PUSH BC
SUB '0'
RET C ; JP C,ERROR
CP 9+1
JP C,AF982
CP 'A'-'0'
RET C ; JP C,ERROR
CP 'F'-'0'+1
RET NC ; JP NC,ERROR
SUB 'A'-('9'+1)
AF982:
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
RET C ; JP C,ERROR
OR L
LD L,A
POP AF
JP AF95D
; ----------------------------------------------
if $+1 ne RABADR + 0378H
if1
.printx * Internal subroutine HXHLBL shifted ! *
endif
endif
HXDEBL: EX DE,HL
HXHLBL: PUSH BC
CALL CR
@ADRBL: LD A,H
CALL HEX_A
LD A,L
CALL HEXABL
POP BC
RET
; ----------------------------------------------
LDBCBS: LD A,8 ; загр.BC без поиска СБ
@LD_BC: CALL LDBYTE ; без поиска СБ, если A=8, с поиском, если A=FF
LD B,A
CALL LDBS
LD C,A
RET ; 11 bytes
; ----------------------------------------------
ESCRES: XOR A ; 5 bytes
SETESC: LD (ESC_F),A
RET
; ----------------------------------------------
@LDBYTE EQU LDBYTE
LDBS: LD A,8
if $ ne RABADR + 0398H
if1
.printx * LDBYTE for emulator B2M need be at FB98 ! *
endif
endif
LDBYTE: PUSH HL
PUSH DE
PUSH BC
LD D,A
AFB9C: LD A,80H
LD (VT_57+,A
LD HL,0
LD C,L
ADD HL,SP
LD (TMPSTK),HL
LD SP,0
LD A,(PC)
RRCA
RRCA
RRCA
RRCA
AND 1
LD E,A
AFBB7: POP AF
LD A,C
AND 07FH
RLCA
LD C,A
LD H,0
AFBBF: DEC H
JP Z,AFC34
POP AF ; Регенерация ОЗУ
LD A,(PC)
RRCA
RRCA
RRCA
RRCA
AND 1
CP E
JP Z,AFBBF
OR C
LD C,A
DEC D
LD A,(KNS_RD)
JP NZ,AFBDC
SUB 012H
AFBDC: LD B,A
AFBDD: POP AF ; Регенерация ОЗУ
DEC B
JP NZ,AFBDD
INC D
LD A,(PC)
RRCA
RRCA
RRCA
RRCA
AND 001H
LD E,A
LD A,D
OR A
JP P,AFC0B
LD A,C
CP 0E6H ; ПРЯМОЙ СИНХРО-БАЙТ ?
JP NZ,AFBFF
XOR A
LD (INV_MG),A ; ПРИЗНАК ИНВЕРСИИ МАГНИТОФОНА
JP AFC09
; ----------------------------------------------
AFBFF: CP 19H ; ОБРАТНЫЙ С/БАЙТ
JP NZ,AFBB7 ; 58 bytes
LD A,0FFH
LD (INV_MG),A ; Tape inverse flag
AFC09: LD D,9
AFC0B: DEC D
JP NZ,AFBB7
LD HL,VT_57+4
LD (HL),low SA ; 0D0H
LD (HL),high SA ; 076H
INC HL
LD (HL),023H
LD (HL),049H
LD A,27H ; start display commando
LD (VG_75+1),A
LD A,0E0H ; reset count
LD (VG_75+1),A
LD L,8
LD (HL),0A4H
LD HL,(TMPSTK)
LD SP,HL
LD A,(INV_MG)
XOR C ; with Tape Inverse flag
JP POPREG
; ----------------------------------------------
BYTE2: LD A,C ; 14 bytes
CP 'Y'
JP NZ,ESCRES
CALL HOME
LD A,2 ; ПРИНЯТО 2 БАЙТА ESC,'Y'
JP SETESC
; ----------------------------------------------
WR_HL: LD C,H
CALL WRBYTE
LD C,L
if $ ne RABADR + 0446H
if1
.printx * WRBYTE for emulator B2M need be at FC46 ! *
endif
endif
@WRBYTE:
WRBYTE: PUSH HL
PUSH DE
PUSH BC
PUSH AF
LD A,80H
LD (VT_57+,A
LD HL,0
ADD HL,SP ; временно храним стек
LD SP,0 ; для регенерации
LD D,8
AFC58: POP AF
LD A,C
RLCA
LD C,A
LD A,1
XOR C
LD (PC),A
LD A,(KNS_WR)
LD B,A
AFC66: POP AF
DEC B
JP NZ,AFC66
LD A,0 ; XOR A = LD A,B (в данном случае незачем)
XOR C
LD (PC),A
DEC D
LD A,(KNS_WR)
JP NZ,AFC7A
SUB 14
AFC7A: LD B,A
AFC7B: POP AF ; подъем стека на [рег.B] ячеек
DEC B
JP NZ,AFC7B
INC D
DEC D
JP NZ,AFC58
LD SP,HL
LD HL,VT_57+4
LD (HL),low SA ; 0D0H
LD (HL),high SA ; 076H
INC HL ; VT_57+5
LD (HL),23H
LD (HL),49H
LD A,27H ; start display commando
LD (VG_75+1),A ; 001.sss.bb 001.001.11
LD A,0E0H ; сброс счетчиков строк и знакомест ???
LD (VG_75+1),A
LD L,8
LD (HL),0A4H ; VT_57+8
POP AF
POPREG: POP BC
POP DE
POP HL
@BAK EQU $
RET
if @BAK ne 0FCA4H
if1
.printx * Internal point 0FCA4H (need for emulator B2M) shifted ! *
endif
endif
; ----------------------------------------------
HEX_A: PUSH AF
RRCA
RRCA
RRCA
RRCA
CALL NIBBLE
POP AF
NIBBLE: AND 0FH
CP 10
CCF
ADC A,30H
DAA
COUT_A: LD C,A
COUT_C:
PUSH HL
PUSH DE
PUSH BC
PUSH AF
CALL STATUS
LD HL,TOBACK
PUSH HL
LD HL,(POSX)
EX DE,HL
LD HL,(EK_ADR)
LD A,(ESC_F)
OR A
JP Z,NO_ESC
DEC A
JP Z,BYTE2 ; если второй байт ('Y')
DEC A
JP Z,AFD73 ; если третий байт
LD A,C ; четвёртый байт
SUB 20H
LD C,A
AFCDD: DEC C
JP M,ESCRES ; СБРОС ESC_F И ВЫХОД
PUSH BC
CALL COD_18
POP BC
JP AFCDD
; ----------------------------------------------
NO_ESC: LD A,C
AND 7FH
CP 7
JP Z,BEEP
CP 8
JP Z,COD_08
CP 10
JP Z,COD_0A
CP 0CH
JP Z,HOME
CP 13
JP Z,COD_0D
CP 1FH
JP Z,CLS
LD C,A
SUB 18H
JP Z,COD_18
DEC A
JP Z,COD_19
DEC A
JP Z,COD_1A
DEC A
JP Z,COD_1B
LD (HL),C ; Видимый на экране символ
CALL COD_18 ; сместить на следующее знакоместо
LD A,D
CP 3 ; мы на первой строке ?
RET NZ ; если не на первой строке
LD A,E
CP 8 ; мы в первой колонке ?
RET NZ ; если не на первой колонке
CALL COD_19
COD_0A: LD A,D
CP 3+24 ; мы на последней строке ?
JP NZ,COD_1A ; если не на последней строке
PUSH HL ; РОЛИК ЭКРАНА
PUSH DE
LD HL,SCBASE+78
LD DE,SCBASE
LD BC,25*78
@LDIR: LD A,(HL) ; пересылка блока размером [BC]
LD (DE),A ; (HL) --> (DE)
INC HL
INC DE
LOOP @LDIR
POP DE
POP HL
RET
; ----------------------------------------------
AFEB3: LD L,20H ; 47 bytes
AFEB5: LD A,(PB)
CPL
OR A
JP Z,AFEAF
DEC L
JP NZ,AFEB5
LD L,8
AFEC3: DEC L
RLCA
JP NC,AFEC3
LD A,H
LD H,L
LD L,A
CP 1
JP Z,AFEFA
JP C,AFEF3
RLCA
RLCA
RLCA
ADD A,20H
OR H
CP 5FH
JP NZ,AFF06
LD A,20H
POP HL
RET
; ----------------------------------------------
AFE2A: DEC H ; в рег.A=код клав, в рег.H- COUNT
JP NZ,AFE21 ; 39 bytes
INC A
JP Z,AFE22 ; если код FF, то сброс флагов
INC A
JP Z,KEY_FE ; если код FE (RUSLAT)
PUSH BC ; КЛИК
LD BC,5003H
CALL SND_BC
POP BC
LD A,(APVFLG)
LD H,0E0H
DEC A
LD (APVFLG),A
JP Z,AFE4C
LD H,40H
AFE4C: LD A,0FFH
JP AFE22
; ----------------------------------------------
; После 15 вызовов STATUS при нажатой клавише выставляется флаг KBDFLG
STATUS: LD A,(PC) ; 38 bytes
RLA
JP NC,AFE0E ; если нажат RUS/LAT
LD A,(KBDFLG)
OR A
RET NZ ; если в SYMBUF уже есть символ
AFE0E: PUSH HL
LD HL,(LAST_K)
CALL XF81B
CP L
LD L,A
JP Z,AFE2A
AFE1A: LD A,1
LD (APVFLG),A
LD H,15H ; число опросов, чтобы зафиксировать код
AFE21: XOR A
AFE22: LD (LAST_K),HL
POP HL
LD (KBDFLG),A
RET
; ----------------------------------------------
AFF1A: LD A,(RUSLAT) ; 33 bytes
OR A
JP Z,AFF2A
LD A,L
CP 40H
JP M,AFF2A
OR 20H
LD L,A
AFF2A: LD A,H
AND 20H
JP NZ,AFF3F
LD A,L
CP 40H
JP M,AFF3B
LD A,L
XOR 20H
POP HL
RET
; ----------------------------------------------
AFEFA: LD A,H ; 32 bytes
LD HL,TABK2
AFEFE: ADD A,L
LD L,A
LD A,(HL)
CP 40H
POP HL
AFF04: RET C
PUSH HL
AFF06: LD L,A
LD A,(PC)
LD H,A
AND 40H
JP NZ,AFF1A
LD A,L
CP 40H
JP M,AFF3F
AND 1FH
POP HL
RET
; ----------------------------------------------
COD_08: ; ВХОД: E=POSX, D=POSY
; HL= экранный адрес
LD A,E ; 29 bytes
DEC HL
DEC E
CP 8 ; были в первой колонке ?
RET NZ ; если были не в первой колонке
LD E,8+63 ; POSX последней колонки
LD BC,64
ADD HL,BC ; экр.адрес в последнюю колонку
COD_19: LD A,D
CP 3 ; это первая строка ?
LD BC,-78
JP NZ,AFDF0
LD D,3+25
LD BC,24*78
AFDF0: DEC D
ADD HL,BC ; Вычесть 78 или прибавить 24*28
RET
; ----------------------------------------------
CLS: LD HL,SCBASE+832H ; 22 bytes
LD DE,30*78 +1
CLSLOO: LD (HL),0
DEC HL
DEC DE
LD A,E
OR D
JP NZ,CLSLOO
HOME: LD DE,308H
LD HL,SCBASE
RET
; ----------------------------------------------
AFC34: LD HL,(TMPSTK) ; 18 bytes
LD SP,HL
CALL PUSK_VG
LD A,D
OR A
JP P,ERROR
CALL CHK_F4
JP AFB9C
; ----------------------------------------------
AFD73: LD A,C ; 18 bytes
SUB 20H
LD C,A
AFD77: DEC C
LD A,4
JP M,SETESC
PUSH BC
CALL COD_1A
POP BC
JP AFD77
; ----------------------------------------------
COD_1B: LD A,1 ; 5 bytes
JP SETESC
; ----------------------------------------------
if $ ne 0FE63H
if1
.printx * Internal point FE63 (need for emulator emu80) shifted ! *
endif
endif
CONIN: CALL STATUS
OR A
JP Z,CONIN
XOR A
LD (KBDFLG),A
LD A,(LAST_K)
RET
; ----------------------------------------------
TOBACK: LD (EK_ADR),HL ; 24 bytes
EX DE,HL
LD (POSX),HL
LD A,80H
LD (VG_75+1),A
LD A,L
LD (VG_75),A
LD A,H
LD (VG_75),A
POP AF
JP POPREG
; ----------------------------------------------
DIR_C: LD A,(BC) ; 19 bytes
CP (HL)
JP Z,AF9E6
; CALL HXHLBL
; CALL LDXHX@
CALL JJJ_02
LD A,(BC)
CALL HEXABL
AF9E6: INC BC
CALL AF996
JP DIR_C
; ----------------------------------------------
BAKSTP: LD A,E ; 15 bytes
CP L ; начало буфера ввода ?
JP Z,AF8F1
CALL RST_18
TZABOJ: defb 8,32,8+128
DEC HL
JP AF8F3
; ----------------------------------------------
COD_0D: LD A,L ; 13 bytes
SUB E
JP NC,AFDF9
DEC H
AFDF9: LD L,A
LD BC,8
LD E,C
ADD HL,BC
RET
; ----------------------------------------------
CHK_F4: CALL XF81B ; 12 bytes
CP 3
RET NZ
CALL PUSK_VG
JP ERROR
; ----------------------------------------------
MSGH: LD A,(HL) ; 11 bytes
OR A
RET Z
CALL COUT_A
INC HL
RET M
JP MSGH
; ----------------------------------------------
DIR_T: LD A,(HL) ; 9 bytes
LD (BC),A
INC BC
CALL AF999
JP DIR_T
; ----------------------------------------------
TABK1: defb 0CH,1FH,1BH,0,1,2,3,4,5 ; 9 bytes
; ----------------------------------------------
RST_18: EX (SP),HL ; 6 bytes
CALL MSGH
EX (SP),HL
RET
; ----------------------------------------------
ASKCUR: LD HL,(POSX) ; 4 bytes
RET
; ----------------------------------------------
AF91A: SUB B ; 2 bytes
RET
; ----------------------------------------------
if RABADR EQ 0F800H
if $ eq 0
if1
.printx * Totally fit in 2K size ! *
endif
endif
if $ ne 0
if high $ gt 0F8H
@FREE EQU 1000H - ($ and 0FFFH)
rept 256
if $ ne 0
defb 255
endif
endm
endif
endif
if $ ge 1
if1
.printx * Code length over 2048 bytes ! *
endif
@OVER EQU $
endif
endif ; RABADR EQ 0F800H
.dephase
END
Последний раз редактировалось: barsik (Чт Фев 06 2020, 16:49), всего редактировалось 2 раз(а)
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Re: Радио-86РК: Разное
63
Прекращайте всё удалять, выложили, пусть лежит, вдруг потом кому нибудь пригодится. Лучше когда есть, чем нет и искать неизвестно где. А то у нас итак хватает блокираторов-идиотов, которые только и делают, что гадят и гадят, что ценнейшая информация становится не доступной, без VPS, но они и там думаю со временем нагадят.
Положили, пусть будет, да и постов на форуме станет больше - что очень хорошо.
Положили, пусть будет, да и постов на форуме станет больше - что очень хорошо.
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Возможная причина сбоев в динамических ОЗУ на РК86
64
Среди людей плотно погрузившихся в тему РК86 сложилось мнение, что причиной сбоев динамических ОЗУ в РК86 является неправильное формирование сигналов /RAS /CAS на сдвиговом регистре 155 ИР1. Соответственно, как методы решения проблемы, более десятка опубликованных вариантов используют метод сдвижки туда-сюда фронтов /RAS /CAS путём введения задёржек (емкостями) или модификацию узла формирователя на 155 ИР1 (что естественно, также изменяет времянки у /RAS /CAS). Многих озадачивало, что почти все эти методы в конкретных аппаратах оказываются малополезными, хотя перепробовав весь десяток предлагаемых вариантов обычно можно найти вариант доработки РК86 дающий результат.
На самом деле все претензии к схеме формирователя /RAS /CAS в РК86 необоснованы, т.к эта схема формирователя /RAS /CAS в РК86 сделана просто идеально, точно по временным диаграммам представленным в РТМ на ОЗУ 565РУ3. А причиной сбоев является вовсе не неправильное формирование сигналов /RAS /CAS или неудачная разводка печати, а ставшее фатальным для РК86 идиотское желание его разработчиков сократить число корпусов в конструкции. Т.е желание поставить рекорд в минимальности схемы бытового компьютера по числу корпусов и цене. Это бессмысленное (точнее очень вредное) желание "экономить на детях" при цене 155-той серии в ~50 копеек за корпус дорого обошлось и стало хорошей иллюстрацией старой русской пословицы "Скупой платит дважды".
А в данном случае экономия всего нескольких корпусов стала просто фатальной, сделав всю конструкцию крайне неудачной, уродливой и бессмысленной. Лишь упомяну тут о том, что затрата всего нескольких доп.корпусов, в частности, использование атрибутов и введение доп.дешифратора для формирования адресов В/У дало бы Радио-86РК те же (или лучшие) апп.возможности, что имелись в текстовой иностранной промышленной микро-ЭВМ "Роботрон-1715" (которые в СССР поставлялись из-за рубежа в обмен на нефть, газ и другие сокровища недр).
Когда я настроил свой РК86, то тоже столкнулся с проблемой сбоев ОЗУ. Любопытно, что при ОЗУ 565 РУ3 у меня сбоев не было, но когда позднее я заменил ОЗУ на 565 РУ5, надёжность упала. Одна из мер предлагаемых для устранения глюков помогла лишь немного, другие не помогали вообще. По счастью, у меня имелось более 250 микросхем динамических ОЗУ, причём 80% из них были иностранного производства десятка разных фирм. Опытным путём я обнаружил, что только при использовании микросхем TMS 4164A-20NL надёжность была 100%. Но стоило применить хоть одну ОЗУ иной фирмы, как начинались сбои. Объяснить феномен никто не смог.
Недавно, с целью турбирования, я наконец добавил в свой РК86 буфер на ОЗУ, сделанный на двух 589АП16, что лампово (оказалось удачно, что как раз ими я запасся в изобилии для Специалиста ещё в 80-тые годы XX-века). 589 АП16 возможно даже лучше, чем 1533 АП6, т.к позволяют развязать у РУ5-тых входы от выходов, что дополнительно разгружает выходы ОЗУ, что возможно позволит сильнее турбировать или поднимет надёжность.
И тут неожиданно обнаружилось, что после этого в моей плате РК стали работать не только уникальные фирменные TMS 4164 (коих, увы, у меня сохранилась всего 1 банка), но и обычные отечественные 565 РУ5. К сожалению, разных динамических ОЗУ у меня осталось совсем мало (их давно уже не 250, а лишь всего пара банок РУ5, т.к ценные фирменные вражеские 4164 я ещё в 90-тые годы XX-века сдуру потратил на Орионы-128).
Ещё нужна проверка на бОльшем количестве ОЗУ 565 РУ5 и на разных иностранных ОЗУ 4164. Но, если буфер - это панацея, то это наводит меня на мысль, что проблемы сбоев в РК возникают вовсе не из-за неверного формирования /RAS /CAS, а из-за конфликта на шине вызванного отсутствием буферов ОЗУ.
Компьютер РК86 давно уже включён в книгу рекордов Гинесса, как единственный в мире компьютер в котором динамические ОЗУ 565 РУ5 применены без буферов. Возможно данные на выходе 565 РУ5 не мгновенно спадают по фронту 0-->1 сигнала /CAS и вызывают помехи на шине данных при чтении процессором следующей команды, а небуферизованные выходы процессора КР580 не в состоянии вытащить шину с кучей паразитных емкостей. Это объясняет почему в промышленных РК-подобных, где применены буфера никаких проблем со сбоями в ОЗУ не возникало. А также то, что предлагаемые меры борьбы со сбоями ОЗУ работают только на конкретном образце. Достаточно в другом компьютере иметь не только иные задержки для /RAS /CAS, но и чуть меньшую нагрузку шины на землю или +5В (из-за разных серий микросхем и разброса их параметров) и та же самая мера исправления дефекта помогающая на одной машине не помогает на другой.
На самом деле все претензии к схеме формирователя /RAS /CAS в РК86 необоснованы, т.к эта схема формирователя /RAS /CAS в РК86 сделана просто идеально, точно по временным диаграммам представленным в РТМ на ОЗУ 565РУ3. А причиной сбоев является вовсе не неправильное формирование сигналов /RAS /CAS или неудачная разводка печати, а ставшее фатальным для РК86 идиотское желание его разработчиков сократить число корпусов в конструкции. Т.е желание поставить рекорд в минимальности схемы бытового компьютера по числу корпусов и цене. Это бессмысленное (точнее очень вредное) желание "экономить на детях" при цене 155-той серии в ~50 копеек за корпус дорого обошлось и стало хорошей иллюстрацией старой русской пословицы "Скупой платит дважды".
А в данном случае экономия всего нескольких корпусов стала просто фатальной, сделав всю конструкцию крайне неудачной, уродливой и бессмысленной. Лишь упомяну тут о том, что затрата всего нескольких доп.корпусов, в частности, использование атрибутов и введение доп.дешифратора для формирования адресов В/У дало бы Радио-86РК те же (или лучшие) апп.возможности, что имелись в текстовой иностранной промышленной микро-ЭВМ "Роботрон-1715" (которые в СССР поставлялись из-за рубежа в обмен на нефть, газ и другие сокровища недр).
Когда я настроил свой РК86, то тоже столкнулся с проблемой сбоев ОЗУ. Любопытно, что при ОЗУ 565 РУ3 у меня сбоев не было, но когда позднее я заменил ОЗУ на 565 РУ5, надёжность упала. Одна из мер предлагаемых для устранения глюков помогла лишь немного, другие не помогали вообще. По счастью, у меня имелось более 250 микросхем динамических ОЗУ, причём 80% из них были иностранного производства десятка разных фирм. Опытным путём я обнаружил, что только при использовании микросхем TMS 4164A-20NL надёжность была 100%. Но стоило применить хоть одну ОЗУ иной фирмы, как начинались сбои. Объяснить феномен никто не смог.
Недавно, с целью турбирования, я наконец добавил в свой РК86 буфер на ОЗУ, сделанный на двух 589АП16, что лампово (оказалось удачно, что как раз ими я запасся в изобилии для Специалиста ещё в 80-тые годы XX-века). 589 АП16 возможно даже лучше, чем 1533 АП6, т.к позволяют развязать у РУ5-тых входы от выходов, что дополнительно разгружает выходы ОЗУ, что возможно позволит сильнее турбировать или поднимет надёжность.
И тут неожиданно обнаружилось, что после этого в моей плате РК стали работать не только уникальные фирменные TMS 4164 (коих, увы, у меня сохранилась всего 1 банка), но и обычные отечественные 565 РУ5. К сожалению, разных динамических ОЗУ у меня осталось совсем мало (их давно уже не 250, а лишь всего пара банок РУ5, т.к ценные фирменные вражеские 4164 я ещё в 90-тые годы XX-века сдуру потратил на Орионы-128).
Ещё нужна проверка на бОльшем количестве ОЗУ 565 РУ5 и на разных иностранных ОЗУ 4164. Но, если буфер - это панацея, то это наводит меня на мысль, что проблемы сбоев в РК возникают вовсе не из-за неверного формирования /RAS /CAS, а из-за конфликта на шине вызванного отсутствием буферов ОЗУ.
Компьютер РК86 давно уже включён в книгу рекордов Гинесса, как единственный в мире компьютер в котором динамические ОЗУ 565 РУ5 применены без буферов. Возможно данные на выходе 565 РУ5 не мгновенно спадают по фронту 0-->1 сигнала /CAS и вызывают помехи на шине данных при чтении процессором следующей команды, а небуферизованные выходы процессора КР580 не в состоянии вытащить шину с кучей паразитных емкостей. Это объясняет почему в промышленных РК-подобных, где применены буфера никаких проблем со сбоями в ОЗУ не возникало. А также то, что предлагаемые меры борьбы со сбоями ОЗУ работают только на конкретном образце. Достаточно в другом компьютере иметь не только иные задержки для /RAS /CAS, но и чуть меньшую нагрузку шины на землю или +5В (из-за разных серий микросхем и разброса их параметров) и та же самая мера исправления дефекта помогающая на одной машине не помогает на другой.
Последний раз редактировалось: barsik (Чт Июн 18 2020, 03:06), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Re: Радио-86РК: Разное
65
А вы могли бы привести схему доработки? У меня до сих по валяется новодельная плата, со сбойным ОЗУ. Никакие ухищрения с ИР1 не помогли, а возможности подбора м/с ОЗУ у меня нет.barsik пишет:
Недавно, с целью турбирования, я наконец добавил в свой РК86 буфер на ОЗУ, сделанный на двух 589АП16, что лампово (оказалось удачно, что как раз ими я запасся в изобилии для Специалиста ещё в 80-тые годы XX-века). 589 АП16 в данном случае лучше, чем 1533 АП6, т.к позволяют развязать у РУ5-тых входы от выходов, что дополнительно разгружает выходы ОЗУ (и соответственно позволяет сильнее турбировать).
Microsha- Новичок
- Сообщения : 25
Дата регистрации : 2019-09-12
.
66
Схема стандартная для 589 АП16, в соответствии с её РТМ (её можно посмотреть в оригинальной схеме Специалиста в журнале "Моделист-Конструктор" 02.1987). АП16, в отличие от ВА86 и АП6, позволяет буферизовать ОЗУ у которых нельзя соединять входы и выходы (напр. 565 РУ1, РУ2). Но 565 РУ3 как раз позволяют это. Обычно ОЗУ разработанные после конца 70-тых годов имеют объединённые входы-выходы и для них применять 589 АП16 позволяющие развязку входов/выходов уже не требуется.Microsha пишет:barsik пишет:наконец добавил в свой РК86 буфер на ОЗУ, сделанный на двух 589 АП16
А вы могли бы привести схему?
Увы, в оригинальной печ.плате РК86 отрезать входы от выходов проблематично, т.к для этого необходимо снять панельки. Есть панельки, что легко демонтировать поддев пинцетом и после снятия платстмассового корпуса выпаять контакты по одному. Но таких довольно ненадёжных, но легко извлекаемых панелек в последние 30 лет встречается мало. Обычно ставят дорогие панельки, которые для сохранения печатных проводников и металлизации отверстий, можно только выкусить раздирая пластмассу кусачками на фрагменты (это очень утомительная, неприятная работа).
Т.к при соединении входов и выходов к буферу идёт меньше цепей, то при РУ5 даже АП16 включают по схеме АП6, (для чего у РУ5 посредством короткого замыкания выводов организуется одна общая цепь входов-выходов). Так сделано в плате Специалист-Экспресс и в трёх-банковой плате на РУ3, что была у меня до Экспресса.
Из-за того, что входы и выходы соединены (причём под панельками), в РК86 буфера 589 АП16 по схеме с раздельными входами/выходами не поставить. Потому по схеме с раздельными входами/выходами АП16 можно поставить только в новодельную плату РК. Но это вряд-ли произойдёт, т.к, раз изобретена схема установки статики в РК86, то уже не имеет смысла выпускать платы новодела на динамических ОЗУ. А у статики - объединённые входы-выходы, потому, естественно, для статики удобнее АП6 (т.к один корпус это меньше, чем два корпуса). Да и для статики буфера не особо нужны, т.к статика скоростная, отчего выходы у неё мощные.
Но я не для того, чтобы разделить входы у ОЗУ, применил 589 АП16. И даже не потому, что у меня они имеются (в количестве аж ~50 штук, хотя почти все паянные, выпаяны из плат СМ-1800), в то время как 555 АП6 надо покупать (или выпиливать из старых плат). А именно потому, что для монтажа вторым этажом на оригинальной плате РК от применения 589 АП16 никуда не уйти. Из-за того, что 20-ти нОгую микросхему на 14-ти- или 16-тинОгую вторым этажом не припаять. Потому приходится применять 16-тинОгие АП16 или АП26. И, естественно, их можно смонтировать лишь над 16-тинОгими 580 ГФ24, 555 ИД7 или 555 КП11. В моей плате над ГФ24 уже смонтирован второй кварцевый генератор (требуемый при улучшении фонта до 8*8 ), естественно, это генератор не на ещё одной ГФ24 (т.к они много жрут), а на ЛН1. А над ИД7 D11 у меня смонтирован ещё один ИД7, нужный для формирования доп. чип-селектов. Потому пришлось монтировать две 589 АП16 над двумя 555 КП11. При этом провода получились длинными (чтоб провода не портили дизайн их, естественно, пустил с нижней стороны платы).
У меня давно возникло с трудом подавляемое желание отпилить с платы РК участок печ.платы с 8-ю панельками под 565 РУ5 и привинтить на это место другой фрагмент содержащий буфер АП6 и разъём под SIMM-30 (который я уже давно выпилил из дохлой платы 486-той PC). Препятствует удовлетворению этого скромного желания лишь отсутствие схемы формирующей полноценный 10-ти битовый вектор регенерации, необходимый для регенерируемости SIMM-30 в РК86).
Получается, что победительная мера по устранению глюков ОЗУ от А.Сапронова из Калуги (смена цепей на контактах 1 и 6 ИР1) оказалась всё-же не победительной и не срабатывает. Предположительно поможет замена процессора КР580 на Z80. Кстати, установка АП16 вторым этажом не очень эстетична, потому я надеюсь, что удастся избавиться от этого как раз путём замены КР580 на Z80.Microsha пишет:У меня до сих по валяется новодельная плата, со сбойным ОЗУ. Никакие ухищрения с ИР1 не помогли
Хочу применить SU880 (это КМОП версия Z80 жрущая всего несколько мА, при работе совершенно холодная) и тактировать его клоком NTSC кварца 3.579 МГЦ. Такой кварц широко распространён (у тех, кто распаивает на детали старые телевизоры), а в РК удобен именно тем, что при делении 3.579 МГЦ на 2 получается стандартный клок РК требуемый для режима Нетурбо. Стандартная скорость РК86 необходима для работы программы прошивателя для УФ-ПЗУ 573 РФ8, прошивателя РПЗУ с проволочными перемычками 556 РТ4/РТ11/РТ5 и 155 РЕ3, а также для игр XONIX и PACMAN (другие РК-игры вообще не представляют интереса в силу низкого игрового аспекта).
Сам РК86 и его чужие программы меня не интересуют (даже если переделать РК в полноценно графический с экраном 192*102), поэтому, чтобы поиметь от платы РК86, как "от паршивой овцы хоть шерсти клок", решил что разумно переделывать плату РК в инструментальный компьютер и текстовый терминал. Для этого не буду подключать в шину ничего (сверх того, что есть по журнальной схеме). А весь интерфейс с внешним миром - только через ППА D14 (в том числе и НГМД, НЖМД, энергонезависимый эл.диск на статике и 580 ВИ53). Протокол шины для внешних БИС подключенных к ППА эмулируется программно. Хотя обмен через ППА тормозит, но это легко компенсируется повышенным клоком Z80 (ускорение при клоке 3.5795 МГЦ - в 2.5 раза от базовой версии).
ПЗУ в адресном пространстве C400...FFFF, например, по нижеприведённой схеме, даёт 30 кб резидентных программ, причём без расходования на это ППА D14 под нужды ROM-диска (т.к ППА D14 нужен как интерфейс к другим периферийным устройствам, для этого он должен быть выведен на 2-3 разъёма-слота, куда вставляются периферийные платы) и без всякой нагрузки шины дополнительным ПЗУ (т.к ПЗУ остаётся всего одно, но это уже не 573 РФ2, а 573 РФ8 ). ИД14 в такой схеме запаивается на место DD11 (ИД7), т.к это сокращает число корпусов (благодаря тому, что ИД14 содержит целых два дешифратора). Но, естественно, можно в роли ИД14 оставить имеющийся на плате ИД7 (т.к он формирует те же 4 чип-селекта с шагом 8 кб на адр.пространстве 8000...FFFF), но в этом случае для формирования доп.чип-сектов для портов придётся ставить ещё один дешифратор).
В принципе для разгрузки шин даже ППА клавиатуры D20 можно снять. Пока использую качественную, но не очень эстетичную и неудобную (т.к высокая 7 см и пока без корпуса) аппаратную ASCII-клавиатуру от венгерского АЦПУ "Консул" (её схема содержит три десятка микросхем 155-той серии и РПЗУ и жрёт тока не меньше, чем сам РК86, причём даёт даже не все нужные РК-шные коды). Эта клавиатура вечная, т.к не контактная, а с датчиками на эффекте Холла. Изначально эту клавиатуру я купил для и использовал на ИРИШЕ. Но для ИРИШИ у меня теперь есть ASCII-клавиатура от Apple-IIe (она красивее и эргономичнее). Да и она ИРИШЕ пока не нужна, т.к у меня частично сдохла последняя рабочая плата граф.адаптера ИРИШИ, - начинает работать лишь через минуту, после прогрева платы (а два других граф.адаптера сдохли ещё 2 года назад). ПЗУ РК86 с поддержкой ASCII клавиатуры имею ещё с начала 90-тых (кстати, драйвер апп.клавиатуры намного короче) и даже в основном именно с ними использовал свой РК.
Теоретически для ASCII клавиатуры не обязателен даже клавиатурный ППА D20, - её можно читать через тот же универсальный интерфейс ППА D14. А если имеющуюся симпатичную клавиатуру с матрицей 6*13 мне не удастся совместимо пристроить на Специалист, то возможно именно её позднее подключу через ППА D20 к РК86 (т.к для инструментальной машины совместимость по клавиатуре не волнует). Или корветовскую клавиатуру (но там матрица ещё более крупная). Теоретически для РК-игр вместо клавиатурного ППА D20 можно поставить ИР22 через которую по схеме РК-клавиатуры подключить джойстик на курсорные клавиши, <ВК> и <пробел>. Клавиатурное ППА нужно лишь для некоторых игр, - проще переделать опрос клавиш в игре, чем надрываться пайкой контактной матрицы клавиш, в то время как у меня давно без дела лежат пять штук качественных клавиатур промышленного производства.
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Страница 3 из 3 • 1, 2, 3
Похожие темы
» Радио-86РК: Разное
» "Радио-86РК". Статьи, заметки, очерки, разное...
» Радио-86РК: По страницам журнала "Радио" и не только...
» Оригинальный БП для Радио-86РК
» Эмулятор радио 86рк
» "Радио-86РК". Статьи, заметки, очерки, разное...
» Радио-86РК: По страницам журнала "Радио" и не только...
» Оригинальный БП для Радио-86РК
» Эмулятор радио 86рк
Страница 3 из 3
Права доступа к этому форуму:
Вы не можете отвечать на сообщения