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
CP/M для РК86 и Микроши Vote_l10CP/M для РК86 и Микроши Voting10CP/M для РК86 и Микроши Vote_r10 
barsik
CP/M для РК86 и Микроши Vote_l10CP/M для РК86 и Микроши Voting10CP/M для РК86 и Микроши Vote_r10 
Atari1974
CP/M для РК86 и Микроши Vote_l10CP/M для РК86 и Микроши Voting10CP/M для РК86 и Микроши Vote_r10 

Поиск
 
 

Результаты :
 


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
Мастер++

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

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

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


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