RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Февраль 2024
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
26272829   

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

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


CP/M для РК86 и Микроши

Перейти вниз

CP/M для РК86 и Микроши Empty CP/M для РК86 и Микроши

Сообщение  barsik Пн Янв 13 2020, 19:19

1
Этот пост динамический и временный. В течение нескольких недель пост и тема будут дополнены выкладками версий CP/M для РК86 (по мере готовности). Речь только о РК86, т.к чтобы получить версию DOS для Микроши достаточно в коде найти команду STA, где в адрес C001 записывается байт 25 и заменить байт C0 на D0. Т.е надо искать сигнатуру 3E, 25, 32, 01, C0.

Пока вот здесь можно скачать версию эмулятора с стартовой убогой версией CP/M для РК86 работающей с RAM-приводом из доп.ОЗУ в окне A000...BFFF. Пару лет назад я странслировал подобную версию для EMU, но с цельно полубанковой коммутацией и без дисковода (т.к тогда эмуляторы ещё не поддерживали РК-КНГМД для РК86). Но когда архитектура РК не меняется (с целью поиметь большое сплошное ОЗУ), то для исходной архитектуры РК расширять ОЗУ выгоднее маленьким окном вне основного ОЗУ. Выгода при этом также в том, что ПЗУ F800 перешивать не требуется, как при цельнобанковой коммутации.

Сейчас я странслировал подобную стартовую версию CP/M для РК86 использующую доп.ОЗУ в окне A000...BFFF и уже не для EMU, а для EMU80. Для расширения ОЗУ используется окно A000...BFFF (ППА D14 перенесено на 8400) для переключения 32-х страниц в котором используется порт 8800.

В минимуме, в реале расширение ОЗУ в окне 8 кб делается, например, с помощью двух (или даже одной) 62256 включённых в шину. У которых адресами A13,A14 и выбором конкретной 62256 управляет регистр (например ТМ2 или ТМ9) с записью в него по адресу 8800. За счёт чего весь объём добавляемого ОЗУ прокачивается в окне 8 кб.

В окончательной версии DOS наличие и объём эл.диска будет определяться автоматически, но наличие верхнего ОЗУ хотя бы в 8 кб, - обязательно (иначе не получить CP/M с TPA в 29 кб). Естественно, если страничности доп.ОЗУ нет (т.е есть всего одна страница доп.ОЗУ в окне A000), то эл.диска совсем нет и приводом A: назначается не эл.диск, а дисковод.

Это версия стартовая (т.е отладочная, этап) и работает не в верхнем ОЗУ, а в основном ОЗУ (т.е ниже 7600), отчего имеет очень малый TPA в 22 кб (точнее 5A50). Она полезна для того, чтобы посмотреть на что обрекает РК86 без доработки по "открытию верхнего ОЗУ". Кстати, т.к код подпрограмм для дисковода объёмнее (плюс буфер размером с дискетный сектор в 512 байт, плюс CP/M буфера), то версия работающая на дисковод имеет TPA ещё на почти 2 кб меньший. С таким крошечным TPA в 20 кб даже Microsoft MBASIC не запустить, т.к он имеет размер в 24 кб (а MSX BASIC вообще имеет размер в 33 кб).

Самая примитивная версия CP/M мне была нужна для того, чтобы отлаживать дискетные подпрограммы для РК-КНГМД и создать образ CP/M-дискеты. Так, чтобы получить CP/M диск (не важно в эмуляторе или в реале) надо взять диск RK-DOS, который отличается от диска CP/M тем, что в нём сектора переменной длины и записать во все сектора во всех треках сектора размером ровно в 512 байт заполненные кодом Е5. Это можно сделать только в RK-DOS или в CP/M. Для RK-DOS для этого пришлось бы писать специальную программу выполняющую эту задачу. А в CP/M это делается с помощью обычного POWER-а командой WRITE низкого уровня. А ещё удобнее это делается CP/M програмкой DU.COM, т.к там можно задать группу команд: записать сектор, перейти на следующий сектор и повторить эту процедуру NNNN раз.

Но в версии DOS из вышеприведённой ссылки нет подпрограмм работы с дисководом, привода B: вообще нет (при трансляции я закомментировал строку include RKFLOP.INC). Т.е это версия по сути DEMO. Т.к загружать файлы в эл.диск надо с МГ-ленты командой монитора, что для практического использования крайне неудобно, и в качестве процедуры CONOUT в CP/M-BIOS используется подпрограмма ПЗУ F809 (которая не обслуживает искейп-коды VT52), отчего экранные программы CP/M не работают. Хотя это не очень большая потеря, т.к всё-равно некоторым программам CP/M на РК просто не хватает уровня TPA в 20 кб.

Т.о Low версия DOS с дисководом годится просто как файловая система, т.е лишь для хранения и запуска РК-программ размером до 20 кб с дискеты. Т.е по сути это аналог RK-DOS, хотя в качестве плюса относительно RK-DOS дающий возможность использовать на РК86 линкующий макроассемблер, отладчики и др. Можно использовать лишь, чтобы сделать какую-то разовую задачу в CP/M или для тестирования разрабатываемых РК-программ.

В течение пары недель постараюсь заменить это сначала версией CP/M с более высоким TPA, а затем версией работающей уже с дисководом, хотя и имеющей также эл.диск (эта версия уже есть, но её ещё надо доделать) и нужно адаптировать для РК программу для автоматического считывания ORD-файлов в CP/M диск с МГ-ленты.

Чтобы посмотреть как выглядит Low CP/M на РК86 распакуйте архив, запустите Emu80.exe и далее делайте следующее. В командной строке РК-монитора введите команду I<ВК> для загрузки с МГ-ленты. В открывшемся окне выбора файла перейдите в каталог PROGS и выберите файл с именем DOS.RKR.

CP/M для РК86 и Микроши OPEN_MENU.1578981797

После чего запустите загруженную программу с адреса его загрузки директивой G.

CP/M для РК86 и Микроши ZAPUSK_CPM.1578981644

Подождите несколько секунд окончания процесса форматирования эл.диска (когда счётчик дойдёт до нуля).

CP/M для РК86 и Микроши START_CPM.1578981863

И после вывода титра и CP/M-промпта

CP/M для РК86 и Микроши CPM1.1578981928

сделайте сброс нажав сочетание клавиш АЛЬТ+F11 (одной рукой удерживая АЛЬТ другой рукой жмёте на F11) и снова в командной строке РК-монитора введите команду I<ВК> для загрузки с МГ-ленты. На этот раз для загрузки выберите какой-нибудь CP/M-файл в формате RKR или GAM. Для начала, чтобы посмотреть параметры и оттестировать диск выберите файл PW.COM.RKR или STAT.RKR. После загрузки файла PW или STAT в командной строке монитора введите команду G<ВК>. Это запуск кода с адреса 0. Т.к после выполнения сброса в ОЗУ осталась загруженная ранее Low CP/M, то выполнится её рестарт. В ответ на CP/M-промпт введите команду SAVE 58 PW.COM (или SAVE 15 STAT.COM). И когда, через несколько секунд снова появится промпт 'A>', можете сделать DIR и запустить сохранённую программу на исполнение набрав на клавиатуре PW и <Enter>.

CP/M для РК86 и Микроши CPM2.1578982078

Подсказка в Повере выдаётся по '?'. Для тестирования системы в Повере нам интересны директивы DISK с информацией о диске и TEST для его проверки. Отладчик в данном конфиге "прошит" в ПЗУ 9000...9FFF и запускается из монитора директивой G9000<ВК>.

Пока я не напишу программу для автоматизации загрузки CP/M-файлов с МГ-ленты, грузить CP/M программы можно только так как показано выше, вручную. Но это требуется только для DOS без дисковода. В версии поддерживающей дисковод для перенесения файлов на образы дискет это требуется сделать только один раз.

В эмуляторе можно перегружать файлы в эл.диск и с дискеты RK-DOS. Для начала надо CP/M и программы CP/M сохранить на диске RK-DOS. Для загрузки запускаем RK-DOS командой <B> и выбрав нужный диск по АЛЬТ+A (или АЛЬТ+B), командой LOADA с дискеты RK-DOS загружаем CP/M-программу с адреса 100 в ОЗУ. Затем также с дискеты RKDOS запускаем CP/M и сохраняем загруженную CP/M-программу в CP/M-диск CCP-командой SAVE.

Ясно, что вручную это делать не намного легче, чем с магнитофона, но зато автоматически это делается намного быстрее. Т.к при загрузке с магнитофона для каждого файла надо вручную в окне выбора файла указывать его имя. А автоматическая программа загрузки сама знает, что грузить.

Например, можно написать нортоноподобную графическую панель для обмена файлами RK-DOS <--> CP/M (которая пригодится и в реале для переноса всех программ с дискет RK-DOS на дискеты или винт CP/M). Кстати, к сожалению, винт эмулятор EMU80 не поддерживает. Несложно написать и более простую автоматическую программу, что после старта будет сканировать дискету RK-DOS и переписывать все файлы с расширением *.CPM на диск CP/M.

Сейчас хочу разобраться с ROM-диском, чтобы CP/M запускалась с ROM-диска директивой R и по сбросу на эл.диск копировались 54 кб CP/M-программ (54, т.к из 64 кб ROM-диска 10 кб отнимает сама DOS). Хотя похоже для РК86 в эмуляторе сделан эркашечный ROM-диск идиотской конструкции из ж.Радио размером всего в 32 кб, а не орионовский в 64 кб.


Последний раз редактировалось: barsik (Вт Янв 14 2020, 10:20), всего редактировалось 2 раз(а)
barsik
barsik
Ветеран

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

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

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

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

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