RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Сентябрь 2020
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930    

Календарь Календарь

Последние темы
» Тема для вопросов, консультаций и т. д...
автор Atari1974 Вчера в 16:12

» ZX Microdrive
автор barsik Вчера в 02:44

» Флейм только по теме "Радио-86РК".
автор barsik Пн Сен 28 2020, 09:24

» Трансформатор электронный Taschibra 230/12В 60Вт для галогенных ламп. Перестал работать.
автор Viktor2312 Ср Сен 23 2020, 15:05

» Купил с али БП 12в 100w для питания LED лент подсветки. Проблема
автор Viktor2312 Вс Сен 20 2020, 18:07

» Жалобы/пожелания по работе форума
автор Viktor2312 Вс Сен 20 2020, 11:54

» Стабилизированный преобразователь напряжения.
автор Viktor2312 Пн Сен 14 2020, 23:12

» Простые доработки ZX-48К: RAM-монитор в ПЗУ и экран на E000
автор barsik Сб Сен 12 2020, 23:47

» Применение КР580 ВИ53 для генерации музыки
автор Viktor2312 Сб Сен 12 2020, 20:09

» STM32. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Сен 03 2020, 12:09

» STM32G0. Документация (Datasheet, разное).
автор Viktor2312 Чт Сен 03 2020, 11:52

» Новинки. Книги. Часть 1.
автор Viktor2312 Ср Сен 02 2020, 14:21

» STM32F4. Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Сен 01 2020, 14:44

» Ленинград-0,-1,-2,-3. Статьи, заметки, очерки, разное...
автор barsik Вс Авг 30 2020, 08:32

» Ленинград-0
автор barsik Вс Авг 30 2020, 08:01

» STM32F4. Изучение.
автор Viktor2312 Пт Авг 28 2020, 00:07

» Орион-128: Полезные доработки ПЭВМ
автор barsik Чт Авг 27 2020, 11:21

» STM32H7. Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Авг 25 2020, 10:43

» Радио-86РК: По страницам журнала "Радио" и не только...
автор barsik Вт Авг 25 2020, 01:28

» STM32L0. Документация (Datasheet, разное).
автор Viktor2312 Вс Авг 23 2020, 10:10

» STM32L0. Отладочные платы.
автор Viktor2312 Сб Авг 22 2020, 20:22

» STM32L0. Программное обеспечение, разное...
автор Viktor2312 Сб Авг 22 2020, 17:24

» STM32L0. Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Авг 20 2020, 19:37

» STM32H7. Документация (Datasheet, разное).
автор Admin Чт Авг 20 2020, 13:33

» STM32F7. Документация (Datasheet, разное).
автор Admin Чт Авг 20 2020, 13:32

Самые активные пользователи за месяц
Viktor2312
Версии RK-DOS для РК86 и Микроши Vote_l10Версии RK-DOS для РК86 и Микроши Voting10Версии RK-DOS для РК86 и Микроши Vote_r10 
barsik
Версии RK-DOS для РК86 и Микроши Vote_l10Версии RK-DOS для РК86 и Микроши Voting10Версии RK-DOS для РК86 и Микроши Vote_r10 
Atari1974
Версии RK-DOS для РК86 и Микроши Vote_l10Версии RK-DOS для РК86 и Микроши Voting10Версии RK-DOS для РК86 и Микроши Vote_r10 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Версии RK-DOS для РК86 и Микроши

Перейти вниз

Версии RK-DOS для РК86 и Микроши Empty Версии RK-DOS для РК86 и Микроши

Сообщение  barsik в Ср Янв 15 2020, 18:46

1
Изменять RK-DOS требуется по многим причинам. Во-первых, популярные в 1992 году дисководы 5.25"-DD имеющие выходной сигнал READY на 34-той ламели врубного разъёма, сейчас стали недоступными. В моду вошли дисководы на 3.5", в которых сигнал READY был только на ранних вариантах этих дисководов. Дешёвые массовые флопы 3.5" не имеют не только сигнала READY, но в них нет даже конфигуратора с перемычками для выбора номера привода (т.е для выбора включать дисковод в ОС как A: или как B:) и задавать это приходится позиционно, перекрученным шлейфом.

Оригинал RK-DOS нуждается для работы в наличии сигнала READY, иначе происходит запись на диск при ещё не раскрученном до номинальной скорости шпинделе и дискета портится. Выход из этой ситуациия я придумал в 1993, когда поимел флоповод TEAC-55FR 5.25"-HD, в котором тоже не было сигнала READY.

Я использовал аппаратное решение - два последовательно включённых КМОП-вентиля с RC цепочкой между, образующие собой узел задержки сигнала на 0.75 секунды. На вход первого вентиля подаётся сигнал полученный объединением на диодах выборки DS0 и DS1. В итоге READY формируется спустя 0.75 секунды после вызова подпрограммы PUSK RK-DOS. Такая "химия" работала. Современные пользователи RK-DOS почему-то до этого не додумались и надрываются в безуспешных поисках антикварных дисководов 3.5" с сигналом READY.

Впоследствии я чуть изменил RK-DOS, введя программное формирование сигнала READY из сигнала INDEX. По линии INDEX выдаётся один импульс за оборот в момент прохождения индексной дырки над оптроном. Т.к в современном флоповоде колесо разгоняется до номинальной скорости всего за пару оборотов, то достаточно обнаружить прохождение нескольких импульсов INDEX и можно считать, что READY получен.

Я это делал для ОРИОНА с процессором Z80, к тому же там РК-DOS работала из ОЗУ, отчего объём её кода был не ограничен в 4 кб. Когда пару лет назад я попытался это сделать для РК86 с процессором КР580, то сдуру взял подпрограмму READY из исходника RK-DOS для ОРИОНА из 1994 года. Там код этой подпрограммы был не оптимальный, потому для процессора КР580 сразу не сумел уместить код в 4 кб (не хватило всего 30 байт). Потому тогда, я странслировал версию RK-DOS работающую без READY лишь для Z80.

Для Z80 уместить тот же код в 4 кб не сложно, т.к применив команды JR где возможно, выигрывается 164 байта, а убрав ненужную п/п-мму посимвольного принтера выигрывается ещё 30 байтов.

Кроме того менять код RK-DOS надо потому, что на процессоре Z80 оригинальная RK-DOS вообще не работает (т.к в нём команды IN/OUT работают иначе). Также очень неудобно, что команда DIR выдаёт список файлов в одну колонку, что из-за ролика экрана не позволяет обзор списка файлов. Есть ещё два неудобства - в именах файлов допустимы только цифры и буквы (спец.сиволы недопустимы). Кстати, оригинальное ПЗУ F800 в РК86 не умеет вводить символ "подчёркивание", это делает только доработанное ПЗУ. А также неприятно, что RK-DOS разделителем в командах всегда требует "запятую", а пробел недопустим, что неудобно для людей.

Два года назад я странслировал универсальную для обоих процессоров версию 2.96. Эта версия получена оптимизацией RK-DOS по объёму кода. За счёт чего исключены команды IN/OUT, но команды Z80 не используются. Благодаря чему получилась универсальная версия RK-DOS пригодная, как для процессора КР580, так и для Z80, но по прежнему нуждающаяся в сигнале READY.

Но т.к версия работающая на НГМД без READY была только для Z80, а он у большинства пользователей РК86 отсутствует, то вчера я ещё немного уплющил код и мне удалось впихнуть в 4 кб версию RK-DOS работающую на дисководе без сигнала READY не только для КР580, но отчистив код от команд IN/OUT, получить версию пригодную одновременно и для Z80. Версия RK-DOS с командами IN/OUT работающая без READY уже имелась ранее, её удалось сделать сразу, ещё пару лет назад, но вот от команд IN/OUT ранее избавиться не удавалось.

Очистка от команд IN/OUT увеличивает объём кода и в кодах КР580 никак не влезала в 4 кб. Недавно делая CP/M для РК86 я обнаружил, что сдуру использовал п/п-му READY из RK-DOS 1994 года. Оказывается впоследствии, используя п/п-ммы RK-DOS для CP/M, я немного оптимизировал эту п/п-мму. Подпрограмма READY там стала на 15 байтов короче.

Использование этой п/п-ммы из CP/M ОРИОНА и решило мне проблему нехватки ОЗУ. Стало не хватать всего десятка байтов, которые приложив дополнительные усилия удалось выиграть. В итоге удалось избавить версию 2.97 от мерзких команд IN/OUT и получилась наконец желаемая версия и без READY и без команд IN/OUT, т.е универсальная, пригодная для всех дисководов и всех процессоров.

Эти версии решают проблему с подбором дисководов для РК86 и Микроши. Итак на сегодня есть следующие версии RK-DOS:

Версия 2.95. READY надо, КР580. Требует дисковод с сигналом READY, на Z80 не работает. DIR в одну колонку.

Версия 2.96. READY надо, Z80 / КР580. Требует дисковод с сигналом READY, но работает и на Z80.

Версия 2.97. Без READY, КР580. Не требует наличия сигнала READY. Только КР580 (есть IN/OUT).

Версия 2.98. Без READY. Z80. Работает только при Z80, имеет свободное место для доработок.

Версия 2.99. Без READY, Z80 / КР580. Не требует дисковод с сигналом READY и не требует КР580.

Вот здесь все исходники и коды этих версий RK-DOS (чтобы получить код надо запустить командный файл или можно коды взять в эмуляторе).

Версии RK-DOS (кроме 2.96 и 2.98) разрешают в именах файлов запрещённые в оригинале символы ' $ - = (апостроф, доллар, тире, равно) и вывод каталога делается в три колонки. В качестве ПЗУ удобен ПЗУ F800, код которого выложен здесь. Это ПЗУ также универсальное, т.е работает с Z80 и КР580 и имеет ещё 153 свободных ячейки ПЗУ для расширений (добавленное позднее примечание: если надо, то теперь есть аналогичное ПЗУ, где свободно аж 280 ячеек).

Вот здесь можно скачать версию эмулятора с эмуляцией РК-КНГМД, работающую с обоими процессорами. RKDOS там та же, что и в приведённой ранее ссылке, а в ПЗУ F800, кроме директив <K> и <H> добавлена команда <B> (без параметров), что делает запуск RK-DOS. Директива <G> - правильная, передаёт запускаемой программе два параметра и позволяет возврат в монитор по RET.

Пользование простое, распаковываете, запускаете файл Emu80.exe, затем нажимаете <B> и <ВК>. Затем можно ввести команду DIR или запустить седовский нортон SE.COM. Чтобы при смене платформы не надо было удалять файл emu80.run, откомментируйте одну из строк в конце файла emu80.conf. Чтобы заменить файл RK-DOS надо заменить строку с именем файла (это сразу в начале конфига).

Версии оригинальной RK-DOS для Микроши отличается лишь одним байтом. Вышепредставленные версии отличаются тремя байтами. Т.к я приложил и исходники в которых есть ключ компиляции позволяющий выбрать целевую платформу, то для получения версий для Микроши достаточно в исходнике в строке "RK86 EQU 1" заменить единицу на ноль и перетранслировать.

Я занялся РК-КНГМД для РК86 не ради РК86, который меня мало интересует, а лишь потому, что надо отладить CP/M-подпрограммы для РК-КНГМД. Для РК86 вообще и в том числе под RK-DOS я не намереваюсь что-либо писать.

Однако у меня есть исходники нортона на Z80 именно для RK-DOS, но не для РК86, а для ОРИОНА. Адаптация его для РК86 в 15 раз проще, чем написание с нуля. Надо только убрать Z80-команды LD (nnnn),RR JR DJNZ и SBC (другие Z80-команды я не использую) и переделать вывод на экран ОРИОНА на вывод в экран РК86. Для меня лично этот нортон интересен лишь для RK-DOS Специалиста, потому вскоре я собираюсь адаптировать этот нортон для Специалиста (это проще, т.к у ОРИОНА и Специалиста одинаковый экран).

Если будут заинтересованные в РК-нортоне для RK-DOS лучшем, чем SE.COM Е.Седова, то могу этот нортон переделать для базового РК86.
barsik
barsik
Мастер++

Сообщения : 701
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения