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

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

Последние темы
» Вити больше нет!
автор 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

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


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
Ветеран

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

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

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

- Похожие темы

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